CloudFront 源路径和缓存行为交互

CloudFront Origin Path and Cache Behavior interaction

我将 CloudFront 分配设置为指向 S3 存储桶。我的 S3 存储桶有一个版本化的文件路径(例如,http://example.s3.us-east-1.amazonaws.com/static/ui/v5.53.3/)。我想配置一个只匹配 /static/ui/* 路径的缓存行为,但我希望对我的来源的所有请求都具有路径 /static/ui/v5.53.3。我试图将我的缓存行为的路径模式设置为 /static/ui/* 并将我的原始路径设置为 /v5.53.3,但这似乎不起作用。

如何使用 CloudFront 配置它?

Origin path

If you want CloudFront to always request content from a particular directory in the origin, enter the directory path, beginning with a forward slash (/). Do not add a slash (/) at the end of the path. CloudFront appends the directory path to the origin domain name.

在您的例子中,源域名是example.s3.us-east-1.amazonaws.com。所以你源看到的请求是example.s3.us-east-1.amazonaws.com/v5.53.3/*。这就是它不起作用的原因。

事实上,截至 2022 年 5 月,如果不使用 Lambda@Edge,这是不可能实现的。您必须在 Lambda 中进行自定义 URL 重写。