S3 CORS以403响应

时间:2014-06-14 05:19:32

标签: 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配置,一切正常。我错过了什么?

1 个答案:

答案 0 :(得分:2)

这可能是因为您没有明确指定通过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>