amazon-web-services - S3 CORS 响应 403

标签 amazon-web-services amazon-s3 cors

我正在尝试在 S3 存储桶上启用 CORS。这是我的 CORS 配置:

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

如果我尝试访问存储桶中的任何文件,服务器会返回 403 和以下内容:

<Error>
  <script/>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>A0DDB22DAA8FEB96</RequestId>
  <HostId>
    wamh2M0Q2rfW2RAXdnJThqeWxVSxd2P2VVq0izvwipp2JATIipMc9CvAs9Qe+2iC
  </HostId>
</Error>

如果我删除 CORS 配置,一切正常。我错过了什么?

最佳答案

这可能是因为您没有明确指定允许的 header ,这些 header 通常在通过 CORS 进行调用时在飞行前请求中发送。

理想情况下,您还需要指定浏览器可以缓存这些飞行前请求的最长时间。尝试修改您的 CORS 配置以包含此信息,如下所示:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

关于amazon-web-services - S3 CORS 响应 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24216831/

相关文章:

amazon-web-services - s3 - 如何获得文件的快速行数? wc -l 太慢了

javascript - 使用 CORS 仍然会出现跨源错误

http - 浏览器何时发送 Origin header ?浏览器何时将原点设置为空?

amazon-web-services - AWS CLI : Error parsing parameter '--item' : Expected: '=' , 收到: '"' 用于输入:

amazon-web-services - 在 API 网关中使用 AWS Lambda 授权方

amazon-web-services - 如何将 example.com 转发到 godaddy 的 www.example.com 以获取 s3 托管站点?

通过预签名 URL 将文件上传到 AWS S3 时,Javascript 不起作用

java - AWS SDK 在检查不存在的 S3 key 时抛出 403,但对现有 key 返回 true

Java Appium 测试无法在 AWS Device Farm 上运行

javascript - 对 API 的 Vue.js GET 请求被 CORS 阻止