【问题标题】:Multiple S3 buckets in the same CloudFront distribution同一 CloudFront 分配中的多个 S3 存储桶
【发布时间】:2015-07-23 16:56:57
【问题描述】:

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

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

所以我添加了 2 个存储桶作为来源并创建了一个“行为”,路径 /products/* 使用我的产品存储桶作为来源

我的“行为”是:

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

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

文件“78/34.jpg”存在于我的产品存储桶中

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

【问题讨论】:

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


    【解决方案1】:

    模式/products/* 匹配指定源存​​储桶中名为“products”的文件夹中的所有对象。所以,密钥需要是products/78/34.jpg

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 已经在两个存储桶上尝试过,“产品”一个总是 AccessDenied,另一个很好。当我使用“产品”存储桶作为默认值创建另一个云端时,它正在工作,但如果可能的话,我想要一个云端
    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2020-03-20
    • 2019-05-21
    • 2015-07-10
    相关资源
    最近更新 更多