Cloudfront自定义对象缓存未发送Cache-Control头信息

3

我的所有资产都存储在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个回答

1

你的期望是错误的。

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

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

请参阅Server Fault上的AWS CloudFront带有S3源的文件没有Cache-Control标头

还可以在Stack Overflow这里查看CloudFront最小TTL是什么?CloudFront中的最小、最大和默认TTL困惑


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接