无法使用CORS配置访问S3资源



你好,

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

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

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

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

我得到以下错误

错误图像

教程中给出的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
}
]

如有任何建议/帮助,我们将不胜感激!

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

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

  2. 必须禁用单个块公共访问。(如教程所示(

  3. ACL必须允许读取访问。您可以在S3-Buckets-your_bucket-permissions-Access Control列表中找到这一点。编辑此以进行读取访问。

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

最新更新