首页 > 解决方案 > 使用 django-s3-storage 为静态文件获取 403

问题描述

我的设置如下:

STATIC_ROOT = BASE_DIR + '/static'

YOUR_S3_BUCKET = "tlot-static"

# DEFAULT_FILE_STORAGE = "django_s3_storage.storage.S3Storage"
STATICFILES_STORAGE = "django_s3_storage.storage.StaticS3Storage"
AWS_S3_BUCKET_NAME = AWS_S3_BUCKET_NAME_STATIC = YOUR_S3_BUCKET

# These next two lines will serve the static files directly
# from the s3 bucket
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % YOUR_S3_BUCKET
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN

但我不断得到:

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>9F85922419DD93C0</RequestId><HostId>5lV1ft+jAOTvnqCvOC/fMSolHXS8foJde8XP1LxtYytlZLjejA2gvjIurYwt9Fn8Jxlgvy5IjOI=</HostId></Error>

这些文件已使用 collectstatic 成功部署,并且我已根据存储桶上的文档设置了 cors。我还需要做什么?

标签: djangoamazon-s3zappa

解决方案


您需要在 Amazon 上的 s3 设置(最快方式)中授予对文件或文件夹的公开访问权限,或者在需要更严格的访问权限时设置安全策略。

也许这个链接可以帮助: https ://www.codingforentrepreneurs.com/blog/s3-static-media-files-for-django/


推荐阅读