我所有的资产都存储在S3中。
我在其顶部设置了CloudFront。因此,我在这个分布上只有一个起源。
当我获得资产(在本例中为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
头,但显然不会返回。
答案 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,有关堆栈溢出。