我需要为整个s3存储桶设置缓存控制头,包括现有和未来的文件,并希望在存储桶策略中执行此操作.我知道我可以编辑现有的,我知道如果我自己上传它们如何在put上指定它们但不幸的是上传它们的应用程序无法设置标题,因为它使用s3fs复制那里的文件.
我已通过s3cmd命令将20000个文件移动到AWS S3.现在我想为所有图像添加缓存控制(.jpg)
这些文件位于(s3:// bucket-name/images /)中.如何通过s3cmd为所有图像添加缓存控制,还是有其他方法来添加标题?
谢谢
Cloudfront配置为缓存来自我们应用的图像.我发现这些图像很快就从缓存中逐出.由于图像是动态生成的,因此对于我们的服务器来说这是非常激烈的.为了解决这个问题,我设置了一个测试用例.
该图像是由我们的原始服务器送达正确Last-Modified和Expires头.
由于该站点仅为HTTPS,因此我将其设置Viewer Protocol Policy为HTTPS.Forward Headers被设置为None与Object Caching对Use Origin Cache Headers.
我在11:25:11请了一张照片.这返回了以下状态和标题:
缓存:没有
到期日:2016年9月29日星期四09:24:31 GMT
稍后重新加载(11:25:43)返回图像:
缓存:是的
到期日:2016年9月29日星期四09:24:31 GMT
差不多三个小时后(14:16:11)我去了同一页面,图片载满了:
缓存:是的
到期日:2016年9月29日星期四09:24:31 GMT
由于图像仍然由浏览器缓存,因此可以快速加载.但我无法理解Cloudfront如何无法返回缓存的图像.因此,应用程序必须再次生成图像.
我读到Cloudfront在闲置几天后会从其缓存中驱逐文件.如上所述,情况并非如此.怎么会这样?