2012-10-13 35 views
5

Tôi tự hỏi làm thế nào tôi kết nối boto để fakes3 để thử nghiệm tích hợp.Làm thế nào để kết nối boto với fakes3

Tôi hiện đang chạy fakes3 như vậy:

fakes3 -r fakes3 -p 4567 

và cố gắng để kết nối với s3 và tạo ra một xô trong ipython như thế này:

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

chỉ này bị treo. Ai đó có thể cho tôi một ví dụ o kết nối với fakes3 từ boto?

Trả lời

5

Theo này (https://github.com/jubos/fake-s3/blob/master/test/botocmd.py) từ các bài kiểm tra fakes3, có thể bạn muốn một cái gì đó như thế này:

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

Trên thực tế, bạn có một vài lỗi đánh máy và calling_format phải được gọi như thế này 's3conn = S3Connection (access_key_id, secret_access_key, is_secure = False , port = 4567, host = 'localhost', calling_format = OrdinaryCallingFormat()) ' –

+0

Cảm ơn, tôi đã chỉnh sửa để sửa. Hy vọng rằng nó là chính xác ngay bây giờ. – garnaat

0

này xảy ra với tôi trong một mac và tôi chỉ nhận ra fakes3 mà không có sự cho phép để tạo ra file . Vì vậy, tôi chạy sudo fakes3 -r/mnt/fakes3_root -p 4567 & và create_bucket và get_all_buckets làm việc tốt

+0

khóa truy cập và bí mật mà bạn đã sử dụng cho 'fakes3' –

+0

FakeS3 không quan tâm đến thông tin đăng nhập bạn cung cấp. Tuy nhiên tôi đã nhận thấy rằng khi bạn không chỉ định bất kỳ thông tin đăng nhập nào, Boto sẽ cố gắng lấy thông tin đăng nhập từ dịch vụ siêu dữ liệu cá thể của Amazon và thất bại bên ngoài EC2. Chỉ định thông tin xác thực không có thật là một cách để ngăn chặn điều đó. – xolox

Các vấn đề liên quan