【问题标题】:Cannot Access S3 resources with CORS configuration无法使用 CORS 配置访问 S3 资源
【发布时间】:2021-10-30 06:52:30
【问题描述】:

早安,

我正在使用以下教程创建一个 S3 存储桶来存储一个 .csv 文件,该文件通过 Lambda 例程从谷歌驱动器每小时更新一次:

https://labs.mapbox.com/education/impact-tools/sheetmapper-advanced/#cors-configuration

当我尝试通过将其插入浏览器来从其 S3 对象 URL 访问 .csv 时

https://mapbox-sheet-mapper-advanced-bucket.s3.amazonaws.com/SF+Food+Banks.csv

我收到以下错误

error image

教程中给出的CORS权限是XML格式:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

我已尝试将其转换为 JSON 格式,因为 S3 控制台似乎不再支持 XML 格式的 CORS 权限:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

任何建议/帮助将不胜感激!

【问题讨论】:

    标签: amazon-s3 mapbox


    【解决方案1】:

    请确保您的帐户权限能够支持对 S3 的公共访问。我今天在尝试创建公共 S3 资源时遇到了四件事。

    1. 必须禁用阻止公共访问的帐户设置。 (确保为任何私人存储桶或对象启用它)

    2. 必须禁用单独的块公共访问。 (如您的教程所示)

    3. ACL 必须允许读取访问。您可以在 S3 - Buckets - your_bucket - 权限 - 访问控制列表下找到它。编辑此内容以获得读取权限。

    4. 转到单个对象并确保它也具有从公共读取的权限。

    【讨论】:

    • 似乎第 3 点和/或第 4 点(在测试前进行了两项更改)已经解决了问题。非常感谢乔丹!
    猜你喜欢
    • 2012-09-09
    • 2012-06-22
    • 2012-12-20
    • 1970-01-01
    • 2017-05-01
    • 2012-11-05
    • 2015-07-17
    • 2019-01-02
    • 1970-01-01
    相关资源
    最近更新 更多