Slo*_*lot 3 amazon-s3 amazon-web-services cors
我需要设置一个 S3 存储桶来为我的 Django 静态文件提供服务,当我尝试添加 CORS 策略时,我得到以下结果:
Expected params.CORSConfiguration.CORSRules to be an Array
Run Code Online (Sandbox Code Playgroud)
我首先尝试了这个政策:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.example.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,我看到亚马逊已将格式更改为 JSON ( https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors )。
所以我尝试了他们的 JSON 示例:
{
"CORSConfiguration":{
"CORSRule":[
{
"AllowedOrigin":[
"http://www.example.fr"
],
"AllowedMethod":[
"PUT",
"POST",
"DELETE"
],
"AllowedHeader":[
"*"
]
},
{
"AllowedOrigin":[
"*"
],
"AllowedMethod":[
"GET"
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了完全相同的错误。
所以我在 stackoverflow 上搜索并看到了这个线程:无法更新 AWS S3 CORS 策略
我尝试了给定的语法,但没有成功:/
如果有人有想法,那就太好了:)
这是一个有效的例子:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"http://www.example.com"
],
"ExposeHeaders": []
},
{
"AllowedHeaders": [],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
Run Code Online (Sandbox Code Playgroud)
请注意,不再需要 CORS XML 标签(它们是隐式的),单数名词似乎变成了复数,例如“AllowedMethod”变成了“AllowedMethods”,因为在 XML 中每个标签代表一个实体,而在 JSON 中它代表多个. 因此,在语言上是有道理的,但不是向后兼容的。
归档时间: |
|
查看次数: |
1308 次 |
最近记录: |