2016-12-17 3 views
1

AWS의 EC2 우분투에 내 장고 응용 프로그램을 배포하고 있습니다.boto S3ResponseError : 400 Bad Request

필자는 모든 작업을 완료했지만 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을 연결하기위한 설정 파일을 설정해야 내에서

.

[Credentials] 
AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID 
AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY 
:

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

그래서 나는 다음과 같이 '~/.boto'에 구성 파일을 추가 않았다 : 나는 '파이썬 manage.py의 collectstatic'을 명령 할 때

아무것도없이

는 오류가이 메시지를 보여줍니다

~/.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 

그것은

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

필요한 필드 위에 ~/.boto file와 함께 일하고있어 - 호스트 (S3 엔드 포인트)

+0

설명하기 위해 [편집] 링크를 이용해주십시오 이 코드가 어떻게 작동하는지 설명은 미래의 독자를 도울 가능성이 높기 때문에 코드를 제공하지 마십시오. [답변]을 참조하십시오. –