我正在将图像上传到 S3。这是 header /请求:

PUT /d899a0475f39e4a1d8c4b2af540d0820.png?AWSAccessKeyId=AKIAIHRUBWYK7YNNWSLQ&Expires=1376548390&Signature=uP677w4lNA81USKByuJwU0FmUuE%3D&Cache-Control:%20max-age=229000 HTTP/1.1
Host: test199801672.s3.amazonaws.com
Content-Length: 436983
Content-Type: image/png

我正在传递 Cache-Control: max-age=229000
我收到 200 OK 响应并且图像已上传,但由于某种原因未读取 Cache-Control 值。下载图像时,我得到:
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 436983
Connection: keep-alive
Date: Thu, 15 Aug 2013 05:33:15 GMT
Last-Modified: Thu, 15 Aug 2013 05:33:11 GMT
ETag: "dbb3afa053cfc18e45f1d8c7ef8ddfd4"
Accept-Ranges: bytes
Server: AmazonS3
Via: 1.0 9dd1962ecf68cae08454f386dd1975c1.cloudfront.net (CloudFront)
X-Cache: Miss from cloudfront
X-Amz-Cf-Id: anyUV_WtyIdEjDrRsrsWc5l9WGIVW0AnIjNn7b_g_EgS7rlP0rxoAw==

没有 Cache-Control header 响应。 X-Cache 说: Miss from cloudfront
我究竟做错了什么?谢谢!

最佳答案

这个对我有用。

我使用元数据下的控制面板为 S3 中的每个文件设置了 Cache-Control max-age=3600 header 。 (API 可以做到这一点)

我的 CloudFront 具有 Behavior Object Caching = Use Origin Cache Headers。

我网站的 header 响应现在显示我在 S3 中设置的 Cache-Control header 。

(当然,必须等待云前端使这些文件的现有版本无效,我帮助了这些文件以及 CloudFront 对这些文件的无效)

关于amazon-s3 - cloudfront/s3 不使用缓存控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18247003/

10-13 08:10