sed*_*nym 11 python amazon-s3 boto
我正在使用Boto尝试在Amazon S3中获取一个存储桶,但是当我对某些存储桶使用get_bucket()时它返回Bad Request.我开始怀疑这是否是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>
Run Code Online (Sandbox Code Playgroud)
这似乎是一个问题,即使我使用相同的用户帐户登录,因为我正在使用访问信用卡并在AWS控制台中创建它.
知道为什么会这样吗?
sed*_*nym 18
事实证明这个问题是因为该地区(我在使用法兰克福).处理它的两种方法:
放弃法兰克福(@andpei指出目前有报道的问题)并在不同的地区重新创建桶.
连接时使用'host'参数指定区域(感谢@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>
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到相关的区域主机.
| 归档时间: |
|
| 查看次数: |
10531 次 |
| 最近记录: |