【问题标题】:Cloudfront Won't Set Expiration Header from S3 OriginCloudfront 不会从 S3 源设置过期标头
【发布时间】:2016-05-03 07:27:41
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    它不添加任何标题。

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

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


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

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

    ...物有所值。

    【讨论】:

    • 谢谢。我正在运行一个脚本来更新它们。不过,我会将代理想法保留在我的工具箱中。
    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多