Tek tek nesneler için Başlığı S3'te ayarlayabileceğiniz Google’da birkaç sayfaya çarptım. Bu özel olarak yapmanın verimli bir yolu değil, çünkü benim durumumda birkaç cisimden bahsediyoruz.
"Üretken" olsun ya da olmasın, aslında çalışması için tasarlandı.
CloudFront başlık eklememektedir Cache-Control:
.
CloudFront geçer Dönüşümü (yapılandırılmış sürece ve ayrıca bakımdan,)Cache-Control:
, bu durumda S3 başlangıç sunucusu tarafından sağlanan başlıkları.
Cache-Control:
Bir nesne alındığında S3 tarafından sağlanan başlıkları almak için , nesne S3'e yüklendiğinde veya nesnenin içine kendi içine kopyalamak için kullanılabilecek bir sonraki put + copy işlemiyle nesnenin meta verilerine eklenmesi gerekir. S3, işlemdeki meta verileri değiştiriyor. Nesne meta verilerini düzenlerseniz, konsolun yaptığı sahne arkası.
Ayrıca (merak ediyorsanız) S3'te bir kovadaki tüm nesneleri bu başlıkları döndürmeye zorlayacak genel bir ayar yoktur - bu nesne başına bir özelliktir.
Güncelleme: Lambda @ Edge, CloudFront'da Node.js'de yazılmış basit bir istek / yanıt nesnesi yapısına karşı kod çalıştıran görüntüleyici ve önbellek ve / veya önbellek ve orijini arasında isteklere ve / veya yanıtlara karşı tetikleyiciler ateşlemenizi sağlayan yeni bir özelliktir CloudFront tarafından gösterilmektedir.
Bu özelliğin ana uygulamalarından biri üstbilgileri manipüle etmektir ... bu yüzden yukarıdakiler hala doğru olsa da - CloudFront'un kendisi eklemiyor Cache-Control
- şimdi bir Lambda işlevinin onları CloudFront'dan döndürülen yanıta eklemesi mümkün.
Bu örnek, Cache-Control: public, max-age=86400
yalnızca Cache-Control
yanıtta henüz bir başlık bulunmuyorsa ekler .
Bir Origin Response tetikleyicisinde bu kodu kullanmak, CloudFront'un kaynaktan bir nesne aldığında ateşlenmesine ve CloudFront'un önbelleğe almadan önce cevabını değiştirmesine neden olur.
'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);
};
Güncelleme (2018/06/20): Son zamanlarda, statik kökenli yapılandırmasını sağlamak için CloudFront ekibine bir özellik talepte tepki yolu statik benzer kökenli nitelikler gibi başlıklarını isteği şimdi, eklenebilir başlıklarından ... ama birlikte döndürerek, her başlığın koşullu olarak eklenmesine olanak tanıyarak (yalnızca kaynak o yanıtı bu başlığı sağlamıyorsa) veya koşulsuz olarak (başlığın eklenmesi ve varsa başlığın başlangıç noktasının üzerine yazılması) ekleyin.
Özellik istekleriyle, genellikle yeni özelliğin uygulanmasını gerçekten düşündüklerinin… veya daha önce üzerinde çalışıp çalışmadıklarına dair hiçbir onay ... alamazsınız, sadece bittiğinde duyurulur. Dolayısıyla bunların uygulanıp uygulanmayacağı hakkında hiçbir fikrim yok. Bu özelliğin Lambda @ Edge üzerinden zaten mevcut olduğu için, temel fonksiyonellikte buna ihtiyaç olmadığına dair bir argüman var ... ama benim karşı iddiam, tabanın işlevsel olarak tam özelliği bulunmadığıdır. basit, statik yanıt başlığı manipülasyonu yapın ve bu, bir tetikleyiciye ihtiyaç duyulmasının tek sebebi ise, Lambda tetikleyicilerinin zorunlu kılınması, finansal olarak ve ilave gecikme süresinde gereksiz bir maliyettir (her ikisi de bir tuhaf maliyet olmasa da).