我正在使用S3存储桶为大型网站存储大量产品图像。这些图像通过Cloudfront以S3存储桶为原点提供。我注意到Cloudfront没有在映像上放置过期标头,即使我已设置分发行为来自定义缓存标头并在Cloudfront中设置长的最小,最大和默认TTL。
我知道我可以在S3对象上过期,但是由于我有数百万张图像,这将是非常不切实际的。我希望cloudfront能为我提供为我添加此标题的荣誉,但事实并非如此。
所以我的问题是让每个S3对象都应用这个过期标头的唯一方法,或者我在Cloudfront中遗漏了一些能为我做这件事的东西?
答案 0 :(得分:2)
CloudFront的TTL配置仅控制 CloudFront 将对象保留在缓存中的时间。
它不会添加任何标题。
所以,是的,你需要在S3中的对象上设置它们。
请注意,Cache-Control:
通常被认为是比Expires:
更好的选择。
避免更新onjects的另一种方法是在EC2中与存储桶位于同一区域中配置代理服务器,并让服务器在响应通过时添加标头。
Request: CloudFront >> Proxy >> S3
Response: S3 >> Proxy >> CloudFront
......为了它的价值。