Amazon S3,无法设置CORS策略

插槽

我需要设置一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章