【问题标题】:boto S3ResponseError: 400 Bad Requestboto S3ResponseError: 400 错误请求
【发布时间】:2017-05-03 03:43:15
【问题描述】:

我正在 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 Bad Request

我所做的是遵循 boto 文档:http://boto.cloudhackers.com/en/latest/getting_started.html

我现在有什么遗漏吗?

【问题讨论】:

    标签: django amazon-web-services amazon-s3 boto boto3


    【解决方案1】:

    ~/.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 一起工作

    【讨论】:

      【解决方案2】:
      conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, host=REGION_HOST)
      

      必填字段 - 主机(s3 端点)

      【讨论】:

      • 请使用edit链接来解释这段代码是如何工作的,不要只给出代码,因为解释更有可能帮助未来的读者。另请参阅How to Answer
      猜你喜欢
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多