0

Я пытаюсь настроить приложение Django для AWS.AWS S3ResponseError 400

My EC2 Конфигурации Ubuntu 14.04, Apache2, Django 1.8 и Python 3.4.

Так что я пытался переместить статические файлы в S3 после этого урока: https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/

После следующих учебник, я, наконец, запустить «питона manage.py collectstatic» в моем проекте и получил ошибку:

boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request

My S3 Bucket политика ниже:

{ 
"Version": "2008-10-17", 
"Statement": [ 
    { 
     "Sid": "PublicReadForGetBucketObjects", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::MY_BUCKET_NAME/*" 
    }, 
    { 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "MY_USER_ARN" 
     }, 
     "Action": "s3:*", 
     "Resource": [ 
      "arn:aws:s3:::MY_BUCKET_NAME", 
      "arn:aws:s3:::MY_BUCKET_NAME/*" 
     ] 
    } 
    ] 
} 

Мой COR конфигурации ниже:

<CORSConfiguration> 
<CORSRule> 
<AllowedOrigin>*</AllowedOrigin> 
<AllowedMethod>GET</AllowedMethod> 
<MaxAgeSeconds>3000</MaxAgeSeconds> 
<AllowedHeader>Authorization</AllowedHeader> 

В моей 'settings.py':

INSTALLED_APPS = (... , 'storages', ...) 

# FOR AWS 
AWS_STORAGE_BUCKET_NAME = 'MY_BUCKET_NAME' 
AWS_ACCESS_KEY_ID = 'MY_ACCESS_KEY_ID' 
AWS_SECRET_ACCESS_KEY = 'MY_SECRET_ACCEESS_KEY' 

AWS_S3_SECURE_URLS =False 
AWS_QUERYSTRING_AUTH = False 
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME 
STATIC_URL = "http://%s/" % AWS_S3_CUSTOM_DOMAIN 
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

Что мне не хватает, чтобы сделать это?

UPDATE

~/.aws/config 

[default] 
aws_secret_access_key = MY_SECRET_ACCESS_KEY_FROM_MY_SECURITY_CREDENTIALS 
region = ap-northeast-2 
output=text 
aws_access_key_id = MY_ACCESS_KEY_ID_FROM_MY_SECURITY_CREDENTIALS 

~/.aws/credentials 

[default] 
aws_access_key_id=MY_ACCESS_KEY_ID_FROM_MY_SECURITY_CREDENTIALS 
aws_secret_access_key=MY_SECRET_ACCESS_KEY_FROM_MY_SECURITY_CREDENTIALS 
region = ap-northeast-2 
+0

Можете ли вы вставить ~/.aws/config или ~/.aws/credentials? – error2007s

+0

@ error2007s Я обновил его, Тот же ключ ключа доступа и секретный ключ доступа, созданный в МОИХ БЕЗОПАСНОСТИ, включены в '~/.aws/config' и '~/.aws/credentials' – LKM

+0

Добавить region = ap-northeast-2 в ~/.aws/credentials, а затем проверить – error2007s

ответ

0

Я должен был установить файл '~/.boto' правильно.

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