S3 存储桶 CORS 策略 Django

Posted

技术标签:

【中文标题】S3 存储桶 CORS 策略 Django【英文标题】:S3 buckets CORS policy Django 【发布时间】:2021-03-31 22:07:14 【问题描述】:

我正在尝试设置一个 s3 存储桶,以便我的 Django 应用可以上传和抓取用户媒体文件。 我来到了这个视频https://www.youtube.com/watch?v=kt3ZtW9MXhw&t=224s 中你设置 cors 政策的部分。

在本教程中,他使用 XML,但 aws 现在需要 json。我不知道该放什么。我希望我的网站能够进行 GET、PUT、POST、PATCH 和 DELETE。

我的应用是托管在 Digital Ocean 液滴上的 Django 应用

编辑:我找到了一个我已经编辑并添加到我的配置中的示例

[
    
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders": []
    ,
    
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example2.com"
        ],
        "ExposeHeaders": []
    ,
    
        "AllowedHeaders": [],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    
]

【问题讨论】:

【参考方案1】:

用于配置cors:-

    你需要给public access to bucket.(通过桶策略和 控制台)https://***.com/a/4709391/13126651(用于公共访问存储桶策略) 确保将您的存储桶用作网站,然后在您的存储桶 cors 设置下附加此策略。
[
    
        "AllowedHeaders": [
            "Authorization"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "<url of first bucket with http://...without slash at the end>"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    
]

【讨论】:

以上是关于S3 存储桶 CORS 策略 Django的主要内容,如果未能解决你的问题,请参考以下文章

AWS S3 存储桶 CORS 策略错误:请求的资源上不存在“Access-Control-Allow-Origin”标头

公共桶的S3 CORS策略

如何解决拒绝访问 aws s3 文件?

不接受 S3 存储桶 CORS 配置

S3 存储桶上的 CORS

AWS S3 存储桶上传 CORS 错误