Я использую django-хранилища для загрузки статических файлов в AWS S3. Я следил за учебниками и смог успешно загружать и извлекать статические файлы для страницы администратора.django-storages s3 403 запрещенная ошибка
Затем я создал статический каталог в своем проекте django, добавил некоторые файлы начальной загрузки и запустил collectstatic. Я вижу, что файлы начальной загрузки были успешно сохранены в моем ведомом S3. Однако, когда я пытаюсь запустить свое приложение (как локально, так и на Heroku), файлы bootstrap терпят неудачу с запрещенной ошибкой 403.
Файлы администратора хранятся в папке администратора внутри одного и того же ведра S3 и извлекаются без проблем. Что может объяснить это несоответствие? Я новичок в s3, поэтому, возможно, я делаю что-то не так.
Я подтвердил, что мои ключи AWS работают.
Мой settings.py следующим образом:
AWS_STORAGE_BUCKET_NAME = 'punchline-app'
AWS_PRELOAD_METADATA = True
STATIC_ROOT = ''
STATIC_URL = 'https://punchline-app.s3.amazonaws.com/static/'
ADMIN_MEDIA_PREFIX = 'https://punchline-app.s3.amazonaws.com/static/admin/'
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_DIR,"static"),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Это правильный URL (https: // punchline- app.s3.amazonaws.com/static/admin/css/base.css) для одного из статических файлов администратора? Если да, я получаю разрешение на отклонение ошибок. Это сообщение может также помочь пролить некоторый свет с разрешениями на ведение S3: http://stackoverflow.com/questions/13167493/access-denied-error-with-amazon-s3 –
Разрешения кажутся прекрасными. Я заметил, что в моем ковше нет статической папки. Я решил проблему, изменив свой URL-адрес STATIC_URL соответственно (сбросив «статический» из пути). Как ни странно, URL-адрес ADMIN_MEDIA_PREFIX по-прежнему имеет статичность в пути, и он работает. – Rob