我在AWS上的EC2的Ubuntu上部署我的Django应用程序。
我完成了所有需要的工作,但连接到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的配置文件。
没有任何东西,当我命令' python manage.py collectstatic' ,错误显示此消息:
boto.exception.NoAuthHandlerFound:没有处理程序准备好了 认证。检查了1名处理程序。 [' HmacAuthV1Handler']检查 你的凭据
所以我确实在 '~/.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错误请求
我所做的是遵循boto文件:http://boto.cloudhackers.com/en/latest/getting_started.html
我现在有什么遗失的吗?
答案 0 :(得分: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 :(得分:2)
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, host=REGION_HOST)
必填字段 - 主机(s3端点)