没有从Cloudfront自定义对象缓存发送缓存控制标头

时间:2019-04-30 20:03:06

标签: amazon-cloudfront

我所有的资产都存储在S3中。

我在其顶部设置了CloudFront。因此,我在这个分布上只有一个起源。

这是我的配置。 enter image description here

当我获得资产(在本例中为css文件)时,这是返回的标头。

Content-Type: text/css
Content-Length: 431206
Connection: keep-alive
Date: Tue, 30 Apr 2019 19:58:02 GMT
Last-Modified: Mon, 29 Apr 2019 19:19:06 GMT
ETag: "157d6f76c8edfc3329062f511be86149"
Accept-Ranges: bytes
Server: AmazonS3
Age: 12
Vary: Accept-Encoding
X-Cache: Hit from cloudfront
Via: 1.1 67c0f7cc5ebd46ca00c423ff8dac32d3.cloudfront.net (CloudFront)
X-Amz-Cf-Id: uqlSS3nsE_s2gfeN8XRaLWsrNoLJw7ap7Kuaqv92GbUVcXFKJD4dog==

我的期望是将设置Cache-Control头,但显然不会返回。

1 个答案:

答案 0 :(得分:1)

您的期望不正确。

这些设置不会设置或修改Cache-Control标头-它们仅调整CloudFront为每个对象的内部TTL采用的值。

要在对象上设置Cache-Control,则需要在将对象上传到S3时发送标头,也可以使用Lambda @ Edge触发器将其添加到CloudFront中。

有关服务器故障,请参见No Cache-Control Header for files from AWS CloudFront with S3 Origin

另请参阅What is Cloudfront Minimum TTL for?Confused with minimum, maximum and default TTL in CloudFront,有关堆栈溢出。