繁体   English   中英

CloudFront缓存 - 如何确保在到期后从S3源服务器刷新CF?

[英]CloudFront caching - How to ensure CF refreshes from S3 origin server after expiry?

我将资产放入具有到期标头的S3,并成功传递到CloudFront分配。 但是,到期后的请求不会导致CloudFront从源服务器请求新文件。

我也发现查询字符串版本标记不强制新资产,我不想使用完整的文件名版本控制。

所有这些可能都归结于我对缓存控制标头的不了解,但我开始怀疑我是否遗漏了一些关于CloudFront应该如何工作的批评。 CloudFront响应显示如下所示的标头。

Cache-Control: max-age=120
Expires: Tue, 07 Apr 2009 12:13:26 GMT

时间流逝,事情发生变化。 正如蒂姆所指出的那样,最低缓存时间是24小时,但在2010年4月,亚马逊宣布他们将认可并遵循指令缓存一小时。

公告在这里: http//developer.amazonwebservices.com/connect/ann.jspa?annID = 655

看起来亚马逊忽略了不到24小时的到期时间。 http://developer.amazonwebservices.com/connect/thread.jspa?messageID=107699&#107699

正如Matchu的评论中所述,如果您愿意,现在可以将到期时间一直设置为零,这对开发和测试服务器来说非常好!

http://aws.amazon.com/about-aws/whats-new/2012/03/19/amazon-cloudfront-lowers-minimum-expiration-period/

最小TTL值可以短至0秒。 然后,您可以通过在原始文件中设置缓存控制标头来为每个文件设置TTL。

还要注意亚马逊文档的内容

在Expires标头中的过期日期和时间过后,每次边缘位置收到对象请求时,CloudFront都会从源服务器再次获取该对象。

我们建议您使用Cache-Control max-age指令而不是Expires头字段来控制对象缓存。 如果为Cache-Control max-age和Expires指定值,则CloudFront仅使用max-age的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM