在Amazon S3和CloudFront上处理定期更新的文件

时间:2012-12-20 02:27:53

标签: amazon-cloudfront

如果我经常覆盖S3上的文件,当我在浏览器中提供文件时,CloudFront会对它们进行缓存。我正在研究Invalidation,但是对于一个多功能网站来说,似乎有多少验证似乎不适用。

我能看到的唯一解决方案是覆盖文件,删除旧文件并更改新文件的名称(我只是将TIMESTAMP添加到结尾),以便CloudFront不会提取缓存版本

这是处理此类事情的最佳建议方式吗?

1 个答案:

答案 0 :(得分:3)

以下是无效限制细节的链接:http://aws.amazon.com/cloudfront/faqs/#Is_there_a_limit_to_the_number_of_invalidation_requests

  

在任何给定的情况下,您只能处理3个无效请求   时间。如果超出此限制,将进一步发出无效请求   收到错误响应,直到其中一个先前的请求完成。

AWS建议:

  

建议您为其实现版本控制系统   您的文件和/或设置一个较短的有效期。

短暂的到期期限很简单,但有明显的缺点。要实现版本控制系统,您可以跟踪数据库中的文件版本,并将该版本作为查询字符串参数附加:

file.jpg?v=2

通过这种方式,您可以设置较长的到期时间,只有在您专门上传新文件并更新版本时,该文件才会失效。

如下面评论中所述,默认行为是CloudFront在构建缓存密钥时忽略查询字符串,因此请确保在默认缓存行为设置下启用“正向查询字符串”以使用此版本控制方法。