1

我正在使用 S3 存储桶为大型网站存储一堆产品图像。这些图像通过 Cloudfront 以 S3 存储桶为源提供。我注意到 Cloudfront 不会在图像上放置过期标头,即使我已设置分发行为以自定义缓存标头并在 Cloudfront 中设置较长的最小值、最大值和默认 TTL。

我知道我可以对 S3 对象设置过期时间,但是这将是非常不切实际的,因为我有数百万张图像。我希望 cloudfront 能让我有幸为我添加此标头,但事实并非如此。

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

4

1 回答 1

2

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

它不添加任何标题。

所以,是的,您需要在 S3 中的对象上设置这些。

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


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

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

...物有所值。

于 2016-05-02T23:27:41.370 回答