同一CloudFront分配中的多个S3存储桶

use*_*124 8 amazon amazon-s3 amazon-web-services amazon-cloudfront

我创建了一个images.domain.com带有SSL 的CNAME的Cloudfront发行版,我有2个S3存储桶:一个用于用户上传,一个用于产品图片默认存储桶是上传存储桶

我想对两个存储桶使用相同的CloudFront

所以我添加了2个桶作为起源并创建了一个"行为",路径/products/*使用我的产品桶作为原点

我的"行为"是:

  1. / products/*to:产品桶(优先级= 0)
  2. 默认(*)到:上传存储桶(优先级= 1)

当我去的时候,images.domain.com/products/78/34.jpg我得到一个AccessDenied

文件"78/34.jpg"出现在我的产品桶中

来自其他存储桶的文件工作正常(即images.domain.com/upload67.jpg在上传存储桶中使用upload67.jpg)

axa*_*npi 8

该模式/products/*匹配指定源存​​储桶中名为"products"的文件夹中的所有对象.所以,关键需要products/78/34.jpg.

如果您在产品存储桶中创建一个名为"products"的文件夹并将73/34.jpg文件移入其中,则该images.domain.com/products/78/34.jpg网址应该可以正常工作(如果您最近在创建文件夹之前遇到错误,则可能需要使其无效).


Evg*_*min 0

我认为您应该将访问公共政策添加到您的产品存储桶中

{
  "Version":"2008-10-17",
  "Statement":[{
    "Sid":"AllowPublicRead",
        "Effect":"Allow",
      "Principal": {
            "AWS": "*"
         },
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::bucket/*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

确保将 arn:aws:s3:::bucket/* 中的存储桶替换为您的存储桶名称。