如何将每个请求从CloudFront转发到原始S3

时间:2019-03-29 12:40:24

标签: amazon-web-services amazon-s3 amazon-cloudfront

我读

  

如果您将CloudFront配置为将所有标头转发到您的来源   在缓存行为方面,CloudFront从不缓存关联的对象。   相反,CloudFront将对这些对象的所有请求转发到   起源。在该配置中,“最小TTL”的值必须为0。

现在我将最小TTL设置为0,并尝试转发所有标头,我从CloudFront收到错误消息: 您不能选择转发所有源于S3的标头。

如何使每个请求都检查s3的来源(以便立即在CloudFront中更新存储桶中的新对象)

1 个答案:

答案 0 :(得分:0)

除非存储桶名称与域名完全匹配,否则您不能将所有标头转发到S3。

相反,请将“最小TTL”,“默认TTL”和“最大TTL 全部”设置为0。

当对象存储在存储桶中且未定义Cache-Control值时,将使用默认TTL。当Cache-Control指定一个非零TTL时使用最大TTL(CloudFront会出于内部目的将 down 的任何较大值强制为最大TTL)。除非在极少数情况下,否则最小TTL应该始终设置为0。

请注意,更改这些值需要无效,否则缓存中已存在的对象可能会使用先前的值。


或者,在将对象写入存储桶时,将s-maxage=0添加到Cache-Control标头值中,并确保Minimum TTL设置为0。