2012-10-13 19 views
5

我想知道如何將boto連接到fakes3進行集成測試。如何將boto與fakes3連接3

我目前正在運行的fakes3像這樣:

fakes3 -r fakes3 -p 4567 

,並嘗試連接到S3並創造IPython的水桶是這樣的:

s3conn = S3Connection(access_key_id, secret_access_key, port=4567, host='localhost') 
bucket = s3conn.create_bucket('test') 

這只是掛起。有人能給我舉一個例子嗎?從boto連接到fakes3?

回答

5

根據這個(https://github.com/jubos/fake-s3/blob/master/test/botocmd.py)從fakes3測試中,你可能想是這樣的:

from boto.s3.connection import S3Connection, OrdinaryCallingFormat 

s3conn = S3Connection(access_key_id, secret_access_key, is_secure=False, port=4567, host='localhost', calling_format=OrdinaryCallingFormat()) 
+1

其實,你有幾個錯字和calling_format必須這樣調用's3conn = S3Connection(access_key_id,secret_access_key,is_secure =假,端口= 4567,主機='本地主機',calling_format = OrdinaryCallingFormat())' –

+0

謝謝,我編輯更正。希望現在是正確的。 – garnaat

0

這種事發生在我的MAC,我只是意識到fakes3沒有權限創建文件。於是我就須藤fakes3 -r到/ mnt/fakes3_root -p 4567 &和create_bucket和get_all_buckets工作得很好

+0

哪個訪問密鑰和祕密,你用於'fakes3' –

+0

FakeS3不關心你給它什麼憑證。不過,我注意到,如果您未指定任何憑據,Boto將嘗試從Amazon實例元數據服務獲取憑證,並在EC2之外失敗。指定假憑證是防止這種情況的一種方法。 – xolox