gpt4 book ai didi

python - get_bucket() 为我未通过 Boto 创建的 S3 存储桶提供 'Bad Request'

转载 作者:太空狗 更新时间:2023-10-29 17:55:26 24 4
gpt4 key购买 nike

我正在使用 Boto 尝试获取 Amazon S3 中的存储桶,但当我对某些存储桶使用 get_bucket() 时它返回错误请求。我开始怀疑这是否是 Boto 的错误,因为我可以使用 get_all_buckets() 获取存储桶。

>>> from boto.s3.connection import S3Connection
>>> conn = S3Connection(S3_ACCESS_KEY, S3_SECRET_KEY)
>>> buckets = conn.get_all_buckets()
>>> buckets
[<Bucket: mysite-backups>]
>>> buckets[0]
<Bucket: mysite-backups>
>>> conn.get_bucket('mysite-backups')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/path/to/virtualenv/lib/python2.7/site-packages/boto/s3/connection.py", line 502, in get_bucket
return self.head_bucket(bucket_name, headers=headers)
File "/path/to/virtualenv/lib/python2.7/site-packages/boto/s3/connection.py", line 549, in head_bucket
response.status, response.reason, body)
S3ResponseError: S3ResponseError: 400 Bad Request

>>> conn.create_bucket('mysite_mybucket')
<Bucket: mysite_mybucket>
>>> conn.get_bucket('mysite_mybucket')
<Bucket: mysite_mybucket>

这似乎是一个问题,即使我使用与使用访问凭证相同的用户帐户登录并从 AWS 控制台中创建它也是如此。

知道为什么会这样吗?

最佳答案

原来问题是因为地区(我使用的是法兰克福)。两种处理方式:

  1. 放弃法兰克福(@andpei 指出有 issues currently reported with it )并在不同区域重新创建存储桶。

  2. 连接时使用“主机”参数指定区域(感谢@Siddarth):

    >>> REGION_HOST = 's3.eu-central-1.amazonaws.com'
    >>> conn = S3Connection(S3_ACCESS_KEY, S3_SECRET_KEY, host=REGION_HOST)
    >>> conn.get_bucket('mysite-backups')
    <Bucket: mysite-backups>

    可以找到相关区域主机here .

关于python - get_bucket() 为我未通过 Boto 创建的 S3 存储桶提供 'Bad Request',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com