2012-10-13 21 views
5

Ich frage mich, wie ich boto zu fakes3 für Integrationstests verbinden.Wie verbinde ich mit fakes3

ich zur Zeit läuft fakes3 wie so:

fakes3 -r fakes3 -p 4567 

und versuchen, s3 zu verbinden und einen Eimer in ipython wie folgt zu schaffen:

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

Dies hängt nur. Kann mir jemand ein Beispiel geben, wie ich mich mit Fakes3 von Boto verbinde?

Antwort

5

dies nach (https://github.com/jubos/fake-s3/blob/master/test/botocmd.py) von den fakes3 Tests, möchten Sie wahrscheinlich so etwas wie dieses:

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

Eigentlich haben Sie ein paar Tippfehler und calling_format müssen wie diese 's3conn = S3Connection aufgerufen werden (access_key_id, secret_access_key, is_secure = False , port = 4567, host = 'localhost', aufrufende_format = OrdinaryCallingFormat()) ' –

+0

Danke, habe ich bearbeitet, um zu korrigieren. Hoffentlich ist es jetzt richtig. – garnaat

0

dies in einem Mac mit mir geschehen, und ich erkannte, dass fakes3 keine Berechtigung, Dateien zu erstellen hatte . Also lief ich sudo fakes3 -r/mnt/fakes3_root -p 4567 & und create_bucket und get_all_buckets funktionierte gut

+0

welche Zugangsschlüssel und Geheimnis Sie für 'fakes3' –

+0

FakeS3 ist egal, welche Anmeldeinformationen Sie es geben. Ich habe jedoch festgestellt, dass Boto, wenn Sie keine Anmeldeinformationen angeben, versuchen wird, Anmeldeinformationen vom Metadaten-Service der Amazon-Instanz abzurufen und außerhalb von EC2 fehlzuschlagen. Die Angabe falscher Anmeldedaten ist eine Möglichkeit, dies zu verhindern. – xolox