将 AWS s3 与 django 连接起来

Connect AWS s3 with django

我正在本地 s3 上测试我的 django 项目。但是当 运行 服务器似乎不提供静态文件时

AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
AWS_DEFAULT_ACL = 'public-read'
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}
# s3 static settings
AWS_LOCATION = 'static'
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

但它似乎不起作用 当我检查我的浏览器的控制台时,它显示访问我的静态文件时禁止访问 403 请求的 http 错误代码。为什么会这样,我应该更改我的 s3 设置吗?

这个错误可能是s3端的。检查您是否有权访问对象和存储桶。当我看到你的设置时,你正在使用 django-storages。不是 django-s3-storages。他们之间有一些变化。 就我个人而言,在 django-storages 的情况下;通过将区域名称添加到设置 helped.so 确保您还包括 AWS_S3_REGION_NAME = 'the region here'

希望它也适合你。