我需要设置一个S3存储桶来提供Django静态文件,当我尝试添加CORS策略时,得到以下结果:
Expected params.CORSConfiguration.CORSRules to be an Array
我首先尝试了此政策:
<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>
经过一番搜索,我发现亚马逊已经将格式更改为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"
]
}
]
}
}
而且我得到了完全相同的错误。
因此,我在stackoverflow上进行了搜索,看到了以下线程:无法更新AWS S3 CORS POLICY
我尝试了给定的语法,但未成功:/
如果有人有一个主意,那就太好了:)
这是一个有效的示例:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"http://www.example.com"
],
"ExposeHeaders": []
},
{
"AllowedHeaders": [],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
请注意,不再需要CORS XML标签(它们是隐式的),单数名词似乎已经变得复数,例如“ AllowedMethod”已变为“ AllowedMethods”,因为在XML中,每个标签表示一个实体,而在JSON中,则表示多个实体。 。因此,在语言上是可辩护的,但不是向后兼容的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句