无法在单个 Cloudfront Distribution 上为多个 S3 存储桶提供服务

Not able to server multiple S3 buckets on a single Cloudfront Distribution

案例:

我有几个 S3 存储桶来存储我的媒体文件。我想将所有这些 s3 存储桶映射到单个 CF 分布。 (他们的文件应该从不同的路径访问)。

我做了一个 CF 分布并添加了 2 个桶。对于行为,第一个桶在 Default(*) 上,第二个桶在路径 nature/*.

问题:

  1. 我能够访问主存储桶(具有默认行为的存储桶)但无法访问辅助存储桶(具有路径性质/*)。访问辅助存储桶的错误是“拒绝访问”。

其他详细信息:

  1. 我的两个存储桶无法全局访问,CF 正在从 OAI 访问它们。

参考文献:

  1. https://aswinkumar4018.medium.com/amazon-cloudfront-with-multiple-origin-s3-buckets-71b9e6f8936
  2. https://vimalpaliwal.com/blog/2018/10/10f435c29f/serving-multiple-s3-buckets-via-single-aws-cloudfront-distribution.html
  3. https://youtu.be/5r9Q-tI7mMw

第二个存储桶中的文件必须以顶级前缀 nature/ 开头,否则将无法解析。 CF在路由的时候并没有去掉匹配到的路径,它还在。如果您无法将第二个存储桶中的对象移动到 nature/ 前缀中,那么您需要一个 CF 函数在将请求转发到 S3 源之前从对象键中删除这部分路径。