Cloudfront无法从S3 Origin设置过期标头

时间:2016-05-02 17:25:49

标签: amazon-s3 amazon-cloudfront content-expiration

我正在使用S3存储桶为大型网站存储大量产品图像。这些图像通过Cloudfront以S3存储桶为原点提供。我注意到Cloudfront没有在映像上放置过期标头,即使我已设置分发行为来自定义缓存标头并在Cloudfront中设置长的最小,最大和默认TTL。

我知道我可以在S3对象上过期,但是由于我有数百万张图像,这将是非常不切实际的。我希望cloudfront能为我提供为我添加此标题的荣誉,但事实并非如此。

所以我的问题是让每个S3对象都应用这个过期标头的唯一方法,或者我在Cloudfront中遗漏了一些能为我做这件事的东西?

1 个答案:

答案 0 :(得分:2)

CloudFront的TTL配置仅控制 CloudFront 将对象保留在缓存中的时间。

它不会添加任何标题。

所以,是的,你需要在S3中的对象上设置它们。

请注意,Cache-Control:通常被认为是比Expires:更好的选择。

避免更新onjects的另一种方法是在EC2中与存储桶位于同一区域中配置代理服务器,并让服务器在响应通过时添加标头。

Request:  CloudFront >> Proxy >> S3
Response: S3 >> Proxy >> CloudFront

......为了它的价值。