【问题标题】:cache-control key set in s3 and present in response header, but images are not caching在 s3 中设置缓存控制键并出现在响应标头中,但图像未缓存
【发布时间】:2021-01-01 08:23:23
【问题描述】:

我使用以下值在存储桶上设置缓存控制键:public, max-age=86400。这显示在响应标头中,但图像没有被缓存。图像返回 200 个。我正在使用活动存储、s3 和 CloudFront。

/// 下面的响应头 ///

Accept-Ranges: bytes
Cache-Control: public, max-age=86400
Content-Disposition: inline; filename="xhbtr_ba6c7e14-cab0-44c2-8701-e48aa75ab3f7_w1200.jpg"; filename*=UTF-8''xhbtr_ba6c7e14-cab0-44c2-8701-e48aa75ab3f7_w1200.jpg
Content-Length: 1444501
Content-Type: image/jpeg
Date: Mon, 14 Sep 2020 15:15:21 GMT
ETag: "18c45e75803b2a82c0a85dc4dde7bba4"
Last-Modified: Mon, 14 Sep 2020 14:00:44 GMT
Server: AmazonS3
x-amz-id-2: /6ynYC2FE4QwOaVJe1uJOBeCsJhfKFzNbMu+X7r0L5pRyax2JoxzJ5qoyO0Sb7dr09yFxZYj5/iE=
x-amz-request-id: 415DC4198F2ED5F1

【问题讨论】:

  • 请说明您确定图像未缓存的方式和位置。
  • 图像返回 200,而不是 304。

标签: amazon-s3 caching amazon-cloudfront rails-activestorage


【解决方案1】:
Server: AmazonS3

您正在查询 S3。 S3 没有缓存。 (cache-control 指令适用于客户端,而不是服务器。)

您可能想要的是使用 Cloudfront 作为边缘缓存。 Cloudfront 松散地遵循用于边缘缓存的缓存控制指令(取决于您如何配置它)。由于您在问题中提到了 Cloudfront,我假设您已经设置了它。因此,不要调用 S3 URL,而是使用您在 Cloudfront 配置中设置的 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2011-07-06
    • 1970-01-01
    • 2020-09-24
    • 2017-10-07
    • 1970-01-01
    • 2010-12-27
    相关资源
    最近更新 更多