【问题标题】:S3 CORS responding with 403S3 CORS 响应 403
【发布时间】:2014-08-04 16:37:26
【问题描述】:

我正在尝试在 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 配置,一切正常。我错过了什么?

【问题讨论】:

    标签: amazon-web-services amazon-s3 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>
    

    【讨论】:

    • 不幸的是,我在这个配置中仍然遇到同样的错误。
    • 您能否也发布您存储桶的访问策略文档?两者之间可能存在冲突。
    • 您说的是添加存储桶策略按钮下的内容吗?如果是,则为空。
    • 您还可以发布您用来访问存储桶的代码吗?还是您只是点击网址?
    • 我在 Chrome 中直接点击 URL。
    猜你喜欢
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2023-01-04
    • 2018-04-17
    • 2013-07-20
    • 2018-09-24
    • 2020-03-16
    • 2013-09-30
    相关资源
    最近更新 更多