2015-09-16 133 views
0
import boto 
import boto.s3 
import boto.s3.connection 

conn = boto.s3.connect_to_region(
'us-west-2', 
aws_access_key_id='MY_KEY', 
aws_secret_access_key='MY_ACCESS_KEY' 
) 

conn.create_bucket('bucket_in_west') 

而且我得到這個錯誤:創建亞馬遜AWS一個S3桶在python博託失敗...

Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "/Users/user/.virtualenvs/west-tests/lib/python2.7/site-packages/boto/s3/connection.py", line 621, in create_bucket 
    response.status, response.reason, body) 
S3ResponseError: S3ResponseError: 400 Bad Request 
<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>IllegalLocationConstraintException</Code><Message>The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.</Message><RequestId>0C0F09FBC87 

是否有人對如何在一個特定的區域創建一個S3桶答案與博託?

回答

2

如果你交談的us-west-2端點,並且希望在該地區建立一個桶,你必須指定,當你調用create_bucket

conn.create_bucket('bucket-in-west', location='us-west-2') 
+0

將這個申請法蘭克福區域呢? (此區域的不同身份驗證握手版本 - 不知道爲什麼) – Becks

+0

是的,它適用於任何地區。如果你想把桶放在那個區域,你應該連接到該區域的S3端點,然後在''create_bucket''的''location''參數中指定該區域。 – garnaat

+1

嗨米奇,並感謝您的意見。照常非常有幫助。有一點需要注意,但是當連接到特定於區域的S3服務時,無法創建名稱中包含'_'/下劃線的存儲桶...... – Becks