এস 3 উত্স সহ এডাব্লুএস ক্লাউডফ্রন্ট থেকে ফাইলগুলির জন্য কোনও ক্যাশে-নিয়ন্ত্রণ শিরোনাম নেই


27

আমরা সবেমাত্র অ্যামাজন এডাব্লুএসে চলে এসেছি। আমাদের কাছে বর্তমানে একটি ইসি 2 উদাহরণ রয়েছে যা ভালভাবে কাজ করছে। এটি সামনে Nginx এবং পিছনে শেষ অ্যাপাচি চলছে। এটা ভাল চলছে। সমস্ত সাইটগুলি সঠিকভাবে চালু হয় এবং ইসি 2 থেকে পরিবেশিত হওয়া ফাইলগুলির জন্য ক্যাশে-নিয়ন্ত্রণ শিরোনাম অন্তর্ভুক্ত করে।

সমস্যা সব স্ট্যাটিক ফাইল আমরা স্থাপন সাথে আছেন আমাজন এস 3 যে মাধ্যমে অ্যাক্সেস করা হচ্ছে CloudFront যা CDNআমরা ফাইলগুলি সূক্ষ্মভাবে অ্যাক্সেস করতে পারি (এবং সিওআরএস নিয়ে কোনও সমস্যা নেই) তবে দৃশ্যত ক্লাউডফ্রন্ট ক্যাশে-নিয়ন্ত্রণ শিরোনামযুক্ত ফাইলগুলি সরবরাহ করে না। আমরা ব্রাউজারের ক্যাচিংয়ে উপার্জন করতে চাই।

আমি এটি যেভাবে দেখছি, ইসি 2 উদাহরণটি এখানে ভূমিকা পালন করে না কারণ স্ট্যাটিক ফাইলগুলি সরাসরি এস 3 + ক্লাউডফ্রন্টের দ্বারা পরিবেশন করা হচ্ছে, অনুরোধটি ইসি 2 তে ওয়েব সার্ভারে যায় না।

আমি সম্পূর্ণ হারিয়েছি

প্রশ্ন: 1) আমি এই ক্ষেত্রে ক্যাশে-নিয়ন্ত্রণ কীভাবে সেট করব? 2) ক্যাশে-নিয়ন্ত্রণ সেট করা সম্ভব? এস 3 বা ক্লাউডফ্রন্ট থেকে?

দ্রষ্টব্য: আমি গুগলে এমন কয়েকটি পৃষ্ঠা হিট করেছি যেখানে আপনি পৃথক বস্তুর জন্য এস 3 এ শিরোনাম সেট করতে পারেন। এটি বিশেষত এটি করার কোনও উত্পাদনশীল উপায় নয় কারণ আমার ক্ষেত্রে আমরা বেশ কয়েকটি অবজেক্টের কথা বলছি।

ধন্যবাদ!


এস 3 এবং প্রযোজ্য ক্লাউডফ্রন্টের URL এর জন্য কোনও URL পোস্ট করুন। আপনি নিজের মতো আচরণ করে দেখতে চাই। পর্যায়ক্রমে হেডার দেখিয়ে উভয়ের জন্য সিআরএল পোস্ট করুন showing
টিম

আমি একটি কাস্টম হেডার যুক্ত করতে সক্ষম চলেছি "মেয়াদ শেষ: সূর্য, 15 অক্টোবর 2027 13:46:07 জিএমটি" সম্পাদনা উৎপত্তি দ্বারা console.aws.amazon.com/cloudfront/home । তবে এটি কাজ করে বলে মনে হচ্ছে না। শেষ পর্যন্ত কীভাবে করলেন?
মানলো

উত্তর:


31

আমি গুগলে এমন কয়েকটি পৃষ্ঠা হিট করেছি যেখানে আপনি পৃথক বস্তুর জন্য এস 3 এ শিরোনাম সেট করতে পারেন। এটি বিশেষত এটি করার কোনও উত্পাদনশীল উপায় নয় কারণ আমার ক্ষেত্রে আমরা বেশ কয়েকটি অবজেক্টের কথা বলছি।

ওয়েল, "উত্পাদনশীল" বা না, এটি আসলে এটি কাজ করার জন্য ডিজাইন করা হয়েছে।

ক্লাউডফ্রন্ট শিরোনাম যোগ করে না Cache-Control:

CloudFront পাসের মাধ্যমে (এবং সম্মান, যদি না অন্যথায় কনফিগার করা থাকে)Cache-Control: মূল সার্ভার, যা এই ক্ষেত্রে এস 3 হয় দ্বারা উপলব্ধ হেডার।

Cache-Control:কোনও বস্তু আনার সময় এস 3 দ্বারা সরবরাহ করা শিরোনামগুলি পেতে , যখন বস্তুটি এস 3 এ আপলোড করা হবে, বা পরবর্তী পুট + অনুলিপি অপারেশন দ্বারা অবজেক্টের মেটাডেটাতে যুক্ত করা হবে তখন এটি সরবরাহ করতে হবে, যা অভ্যন্তরীণভাবে নিজের মধ্যে অনুলিপি অনুলিপি করতে ব্যবহৃত হতে পারে প্রক্রিয়াটিতে মেটাডেটা পরিবর্তন করে এস 3। আপনি যদি বস্তু মেটাডেটা সম্পাদনা করেন তবে পর্দার আড়ালে কনসোলটি এটি করে।

এস -3-তে কোনও বালতিতে সমস্ত বস্তু এই হেডারগুলি ফিরিয়ে দিতে বাধ্য করার জন্য কোনও বৈশ্বিক সেটিং নেই (এটি আপনি যদি ভাবছেন তবে) - এটি প্রতি-অবজেক্ট বৈশিষ্ট্য।


আপডেট: লাম্বদা @ এজ ক্লাউডফ্রন্টের একটি নতুন বৈশিষ্ট্য যা আপনাকে অনুরোধ এবং / অথবা প্রতিক্রিয়াগুলির বিরুদ্ধে, ভিউয়ার এবং ক্যাশে এবং / অথবা ক্যাশে এবং উত্সের মধ্যে, সাধারণ অনুরোধ / প্রতিক্রিয়া অবজেক্ট কাঠামোর বিপরীতে নোড.জেজে লিখিত চলমান কোডের মধ্য দিয়ে ট্রিগারগুলি ফায়ার করতে দেয় you ক্লাউডফ্রন্ট দ্বারা উন্মুক্ত

এই বৈশিষ্ট্যটির জন্য প্রধান অ্যাপ্লিকেশনগুলির মধ্যে একটি হ্যান্ডারগুলি ম্যানিপুলেট করা ... সুতরাং উপরেরটি এখনও সঠিক - ক্লাউডফ্রন্ট নিজেই যোগ করে না - ক্লাউডফ্রন্ট Cache-Controlথেকে ফিরে আসা প্রতিক্রিয়ায় কোনও ল্যাম্বডা ফাংশন তাদের যুক্ত করা এখন সম্ভব।

প্রতিক্রিয়াটিতে ইতিমধ্যে Cache-Control: public, max-age=86400কোনও Cache-Controlশিরোনাম উপস্থিত না থাকলে এই উদাহরণটি যুক্ত করে।

এই কোডটি একটি অরিজিন রেসপন্স ট্রিগারে ব্যবহারের ফলে প্রতিবার ক্লাউডফ্রন্ট উত্স থেকে কোনও জিনিস আনার কারণে আগুন জ্বলতে পারে এবং ক্লাউডফ্রন্টের ক্যাশে যাওয়ার আগে প্রতিক্রিয়াটি পরিবর্তন করে।

'use strict';

exports.handler = (event, context, callback) => {
    const response = event.Records[0].cf.response;

    if(!response.headers['cache-control'])
    {
        response.headers['cache-control'] = [{ 
            key:   'Cache-Control', 
            value: 'public, max-age=86400' 
        }];
    }

    callback(null, response);
};

আপডেট (2018-06-20): সম্প্রতি, স্ট্যাটিক অনুরোধ শিরোনামগুলি যেভাবে যুক্ত করা যায় তার অনুরূপ, স্থিতাবস্থার প্রতিক্রিয়া শিরোনামগুলিকে মূল বৈশিষ্ট্য হিসাবে কনফিগারেশনের অনুমতি দেওয়ার জন্য আমি ক্লাউডফ্রন্ট টিমের কাছে একটি বৈশিষ্ট্য অনুরোধ জমা দিয়েছি ... তবে একটি দিয়ে মোচড় দেওয়া, প্রতিটি শিরোনামকে শর্তসাপেক্ষে যুক্ত করার অনুমতি দেওয়া হয় (কেবলমাত্র উত্স প্রতিক্রিয়াতে শিরোনামটি সরবরাহ করে না) বা শর্ত ছাড়াই (শিরোনাম যুক্ত করে এবং ততক্ষণে উত্স থেকে শিরোনামটি ওভাররাইট করা, যদি উপস্থিত থাকে)।

বৈশিষ্ট্য অনুরোধ সহ, আপনি সাধারণত তারা নতুন বৈশিষ্ট্যটি বাস্তবায়নের বিষয়ে বিবেচনা করছেন কিনা ... বা তারা ইতিমধ্যে এটিতে কাজ করছে কিনা তা নিশ্চিতকরণ আপনি পাবেন না ... এটি সম্পন্ন হওয়ার পরে এটি কেবল ঘোষণা করা হয়েছে। সুতরাং, এগুলি কার্যকর করা হবে কিনা আমার কোনও ধারণা নেই। একটি যুক্তি তৈরি করার দরকার আছে যেহেতু এই ক্ষমতাটি লাম্বডা @ এজ এর মাধ্যমে ইতিমধ্যে উপলব্ধ, তাই বেস কার্যকারিতাটিতে এটির কোনও প্রয়োজন নেই ... তবে আমার পাল্টা যুক্তিটি হ'ল বেসটি কার্যত ক্ষমতা ছাড়াই বৈশিষ্ট্য-সম্পূর্ণ নয় সহজ, স্থিতিশীল প্রতিক্রিয়া শিরোনাম হেরফের করুন, এবং এটি যদি কেবলমাত্র যদি ট্রিগারের প্রয়োজন হয় তবে ল্যাম্বডা ট্রিগারগুলির প্রয়োজন হয় আর্থিক এবং সংযুক্ত বিলম্বের ক্ষেত্রে (যদিও উভয়ই অপ্রয়োজনীয় ব্যয় নয়) unnecessary


যদিও এটি এখনও বিরক্তিকর।
এরিকা কেন


1
তদা, সত্যই, @ কুণাল। আমি উত্তরে যা উল্লেখ করেছি তার একটি উদাহরণ এটি "পরবর্তী পুট + অনুলিপি অপারেশন দ্বারা বস্তুর মেটাডেটাতে যুক্ত হয়েছে।" সাবধানতা এবং পরীক্ষা দিয়ে এটি ব্যবহার করুন, কারণ সেখানে সতর্কতা রয়েছে। এটি আপনার সমস্ত ডেটস্ট্যাম্পগুলি পুনরায় সেট করবে এবং এনক্রিপশনের জন্য জড়িত থাকতে পারে। এটি মাল্টিপার্ট্ট থেকে একক অংশের ফর্ম্যাটে অবজেক্ট ইটাগগুলিও পরিবর্তন করতে পারে যা একটি পৃথক অ্যালগরিদম, এবং ভবিষ্যতে সততা যাচাইয়ের জন্য অন্য কোথাও ইটাগগুলি সংরক্ষণ করে এমন কোনও সিস্টেমকে বিভ্রান্ত করবে। যদি বালতিতে সংস্করণ সক্ষম করা থাকে তবে আপনি পুরানো সংস্করণগুলি পরিষ্কার না করলে আপনার স্টোরেজ ব্যয় দ্বিগুণ হয়।
মাইকেল - স্কুয়েলবট

1
নতুন ল্যাম্বদা @ এজ পরিষেবাটি এখন এমন একটি ব্যবস্থাও সরবরাহ করে যা ক্যাশে-নিয়ন্ত্রণ প্রতিক্রিয়া শিরোনামগুলি (অন্যদের মধ্যে) অন-ফ্লাইয়ে যুক্ত করার অনুমতি দেয়। আমি কীভাবে এটি করা যেতে পারে তার একটি কার্যকরী উদাহরণ সহ উত্তরটি আপডেট করেছি।
মাইকেল - স্কেলবট

1
@ ব্রোশি ভূমিকার "বিশ্বাস নীতি" -এর জন্য ল্যাম্বদা এবং এজলাম্বদা উভয় পরিষেবাই তালিকাভুক্ত করা দরকার। ডকস.আও.স.ম্যাজন / ল্যাম্বদা / ফলসট / ডিজি / atএ একবার দেখুন
মাইকেল - স্ক্যালবট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.