AWS S3 CORS错误:不允许访问

时间:2016-02-13 16:39:00

标签: amazon-web-services amazon-s3 cors

我试图将图片加载到我已与我的应用集成的Aviary照片编辑器中。照片托管在AWS上,而我的应用程序在Heroku上。每当我将照片加载到应用程序中时,它们都显示正常,但是当我将它们传递到试图将它们加载到Adobe Cloud服务器上的Aviary SDK时,我收到一条CORS错误:

Image from origin 'https://s3.amazonaws.com' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://app.example.com' is therefore not allowed access.

我已经阅读过亚马逊的doc on CORS,但我正努力让它发挥作用。我的存储桶有以下访问策略:

<?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>

更令人困惑的是,这似乎有时只会发生。其他时候图像加载到编辑器就好了。有时这也发生在localhost上。错误是相同的,除了最后一行是Origin 'null' is therefore not allowed access

我也尝试过以下政策,但没有成功。

<?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>

    <CORSRule>
        <AllowedOrigin>http://app.example.com/</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>

    <CORSRule>
        <AllowedOrigin>http://app.example.local:3000/</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我还应该注意,此问题似乎只会偶尔发生在我的计算机(Mac)上,但一直发生在Chrome(最新)Windows上。

0 个答案:

没有答案