2014-06-14 77 views
0

我试图在S3存储桶上启用CORS。这里是我的CORS配置:S3 CORS响应403

<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

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

不幸的是,我仍然收到与此配置相同的错误。 – LandonSchropp

+0

您是否还可以发布您存储桶的访问策略文档?两者之间可能会有冲突。 – Nikhil

+0

您是否在讨论** Add Bucket Policy **按钮中的内容?如果是这样,它是空的。 – LandonSchropp