0

我尝试使用 django-storages 从本地静态文件移动到 S3。我仔细阅读了文档,但仍然无法访问静态文件。

在本地环境中,我有:

STATIC_URL = '/static/'

在中settings.py,一切正常。

当我按照文档显示添加所有 S3 参数时:

STATIC_URL = 'https://django-main.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = 'https://django-main.s3.amazonaws.com/admin/' # tried with this and also without this



DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'


AWS_ACCESS_KEY_ID = '<AWS_ACCESS_KEY_ID>'
AWS_SECRET_ACCESS_KEY = '<AWS_SECRET_ACCESS_KEY>'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'

我跑python manage.py collectstatic了似乎工作正常并将静态文件上传到存储桶。

但是运行服务器并进入管理页面,它看起来像这样:

在此处输入图像描述

这是因为它无权访问静态文件。没有错误被抛出/显示

有任何想法吗?

编辑:

所以显然我接到了一个禁止电话: 在此处输入图像描述

但我将我的 settings.py 更改为:

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')

并确保访问可用(放置一个断点并使用这些确切的环境变量从该存储桶中使用 boto3 下载一个 css 文件,但仍然没有解决方案

4

1 回答 1

0

问题是存储桶读取权限不是公开的。更改权限有效

于 2022-01-12T09:54:02.353 回答