Python Django S3 Direct上的CORS错误

Python Django S3 Direct上的CORS错误,python,django,amazon-web-services,amazon-s3,Python,Django,Amazon Web Services,Amazon S3,我使用Django S3 Direct将文件上载到S3存储桶 我使用以下配置 AWS_SECRET_ACCESS_KEY = '' AWS_ACCESS_KEY_ID = '' AWS_STORAGE_BUCKET_NAME = '' 这些值是在IAM管理控制台中生成的 我设置了铲斗,CORS配置如下 <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com

我使用Django S3 Direct将文件上载到S3存储桶

我使用以下配置

AWS_SECRET_ACCESS_KEY = ''
AWS_ACCESS_KEY_ID = ''
AWS_STORAGE_BUCKET_NAME = ''
这些值是在IAM管理控制台中生成的

我设置了铲斗,CORS配置如下

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

*
放
邮递
得到
3000
*
但是,当我尝试在Django admin中上载文件时,会出现以下错误:

XMLHttpRequest cannot load https://s3.amazonaws.com/<bucketname>. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.
XMLHttpRequest无法加载https://s3.amazonaws.com/. 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:8000因此,不允许访问。

即使在添加了您提到的CORS值之后,django-s3direct也遇到了同样的问题。对我来说,在添加了 S3U地区='ap-东南-1'
您可以从这里的同一个问题中选择您所在的地区,除了我一直从AWS获取301之外。经过一番挖掘,我发现了以下评论:

据我所知,S3是跨区域的,这意味着您不需要 指定要将文件上载到的区域,因为它将上载到 复制到幕后的其他区域。终点= 's3.amazonaws.com'如果你的bucket名为'test',你将上传到 “test.s3.amazonaws.com”,而不是“test.s3-eu-west-1.amazonaws.com”

所以我用与@Kanhaiya建议相反的方法来解决这个问题。我在
设置中设置了
S3DIRECT\u区域
,删除它后(直接查询
s3.amazonaws.com
),事情得到了解决