2013-06-30 10 views
0

Я использую 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', 
) 
+0

Это правильный URL (https: // punchline- app.s3.amazonaws.com/static/admin/css/base.css) для одного из статических файлов администратора? Если да, я получаю разрешение на отклонение ошибок. Это сообщение может также помочь пролить некоторый свет с разрешениями на ведение S3: http://stackoverflow.com/questions/13167493/access-denied-error-with-amazon-s3 –

+0

Разрешения кажутся прекрасными. Я заметил, что в моем ковше нет статической папки. Я решил проблему, изменив свой URL-адрес STATIC_URL соответственно (сбросив «статический» из пути). Как ни странно, URL-адрес ADMIN_MEDIA_PREFIX по-прежнему имеет статичность в пути, и он работает. – Rob

ответ

0

Есть ли у вас ключи доступа выяснял, как это в вашем файле settings.py?

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

И вы установили переменные env в герою? например

heroku config:set AWS_ACCESS_KEY_ID='<put your key here>' 
0

Это то, что говорит AWS о проблеме

  1. Access Denied
  2. эмиссионный счет

enter image description here

Смежные вопросы