2016-12-17 14 views
1

Я развертываю приложение Django на Ubuntu EC2 на AWS.boto S3ResponseError: 400 Плохой запрос

Я закончил все необходимые рабочие места, но подключился к boto.

В моей settings.py

AWS_ACCESS_KEY = 'AWS_ACCESS_KEY' 
AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY' 
AWS_STORAGE_BUCKET_NAME = 'BUCKET-s3' 
AWS_QUERYSTRING_AUTH = False 
S3_URL = 'https://s3.ap-northeast-2.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME 

DEFAULT_FILE_STORAGE = 'PROJECT.s3utils.MediaS3BotoStorage' 
STATICFILES_STORAGE = 'PROJECT.s3utils.StaticRootS3BotoStorage' 
MEDIA_URL = S3_URL + '/media/' 
STATIC_URL = S3_URL + '/static/' 

MEDIA_ROOT = MEDIA_URL 
STATIC_ROOT = STATIC_URL 

'PROJECT.s3utils.py' is below:

from storages.backends.s3boto import S3BotoStorage 
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static') # s3 directory name 
class MediaS3BotoStorage(S3BotoStorage): 
    location = 'media' 

Наконец, мне нужно создать файл конфигурации для подключения Boto.

Без ничего, когда я приказываю 'питона manage.py collectstatic', ошибка показывает это сообщение:

boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials

Так что я добавить файл конфигурации в '~/.boto', как показано ниже:

[Credentials] 
AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID 
AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY 

После создания файла конфигурации ~/.boto я выполнил команду «python manage.py collectstatic»

я получил ошибку:

boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request

Что я делаю, следуя Boto документа: http://boto.cloudhackers.com/en/latest/getting_started.html

enter image description here

есть все, что я сейчас не хватает?

ответ

2

~/.boto

[Credentials] 
aws_access_key_id = aws_access_key_id 
aws_secret_access_key = aws_secret_access_key 
[s3] 
host=s3.ap-northeast-2.amazonaws.com 
aws_access_key_id = aws_access_key_id 
aws_secret_access_key = aws_secret_access_key 

Он работает с ~/.boto file выше

1
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, host=REGION_HOST) 

обязательное поле - хост (s3 конечная точка)

+0

Пожалуйста, используйте ссылку [изменить], чтобы объяснить как этот код работает и не просто дают код, так как объяснение, скорее всего, поможет будущим читателям. См. Также [ответ]. –

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

  • Нет связанных вопросов^_^