更改S3对象标头不会影响CloudFront

时间:2018-05-25 11:36:29

标签: caching amazon-s3 amazon-cloudfront cdn cache-control

昨天我在S3中查看了一个桶中的对象并添加了这个标题:

Cache-Control: max-age=604800

我是使用更改元数据选项完成的,因为我可以轻松地按文件夹应用它:

enter image description here

现在,如果我直接请求图像,我会看到正确的标题:

Cache-Control: max-age=604800
Date: Fri, 25 May 2018 11:28:53 GMT
ETag: "1abf6cb38c4645f3de14a19beba80019"
Last-Modified: Fri, 25 May 2018 11:11:11 GMT
Server: AmazonS3
x-amz-id-2: qQk8NrWHNCOV5SmLvSQGahvYKuQIkcqQdc2I4Hdm2QLGkhet8cF4n1O+c2HLxhEVl7iBReFSflo=
x-amz-request-id: 97C53C15E86CD3FF

但这是我通过CloudFront请求图片时的响应:

HTTP/1.1 304 Not Modified
Connection: keep-alive
Date: Fri, 25 May 2018 11:28:15 GMT
ETag: "1abf6cb38c4645f3de14a19beba80019"
Server: AmazonS3
Age: 70693
X-Cache: Hit from cloudfront
Via: 1.1 1d7454c76d6ac81147ca3cbd1284c8ae.cloudfront.net (CloudFront)
X-Amz-Cf-Id: CLiExdWbIvxcBFcoND6JYjcKQj54QyQkWl48OyPpUPLupHZl8SPfPQ==

我在添加此标题时的目的是改善Pingdom for Leverage浏览器缓存的结果,但我仍然通过该部分中列出的CloudFront从此存储桶中获取网址:

https://d253b1eioa5z7b.cloudfront.net/bc_video_ ... 6_9_576_67de5812-fd82-4476-8b3f-886ad3a4907d.png
https://d253b1eioa5z7b.cloudfront.net/bc_video_ ... 6_9_576_a7ddd1ed-0913-41f6-927e-9db33b582a89.jpg

当我对S3中的其他对象执行同样的操作时,我直接从网站上使用(没有CDN),我立即注意到对Pingdom结果的影响。

我应该等吗?或者我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您在S3中进行的Cache-Control更改未在CloudFront中更新。要将更新推送到CloudFront,您需要在CloudFront中更新Web分配并更改设置使用原始缓存标头(参见图像)。

enter image description here

这是针对CloudFront的AWS文档details the values you can specify when updating a CloudFront Web Distribution - 在对象缓存标题下。

要进行此更改,请使用AWS页面中讨论的步骤以及有关如何Update a Web Distribution with the CloudFront console的详细信息,并密切关注步骤5中的第三个项目符号:Cache behavior settings。这是您进入上面显示的屏幕并可以更改“使用原始缓存标题”的地方。

尝试一下,看看您的Pingdom结果是否有所改善。