amazon s3 Der angegebene Schlüssel existiert nach dem Erfolg von get_key nicht

8

Ich benutze Python und Boto

das ist mein Code:

%Vor%

manchmal (erscheint zufällig) ich bekomme diese Ausnahme:

  

S3ResponseError: S3ResponseError: 404 nicht gefunden

HINWEIS: Die Datei wird von einem Server hochgeladen, und unmittelbar danach führt ein anderer Server (auf einem anderen Kontinent) den obigen Code aus.

die Rückverfolgung:

  

Traceback (letzter Aufruf zuletzt): Datei "/test.py", Zeile 222, in _process_response

     

data = key.get_contents_as_string () Datei "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py",

     

Zeile 1201, in get_contents_as_string       response_headers = response_headers) Datei "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py",

     

Zeile 1093, in get_contents_to_file       response_headers = response_headers) Datei "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py",

     

Zeile 996, in get_file       override_num_retries = override_num_retries) Datei "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py",

     

Linie 211, offen       override_num_retries = override_num_retries) Datei "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py",

     

Zeile 165, in open_read       self.resp.reason, body) S3ResponseError: S3ResponseError: 404 nicht gefunden

     

NoSuchKey Der angegebene Schlüssel nicht   exist.key_nameeidhost_id

Ich bekomme den Schlüssel, aber wenn ich versuche, es zu lesen, bekomme ich "nicht gefunden". irgendeine Idee ?

    
yossi 27.11.2012, 08:46
quelle

1 Antwort

8

Dies ist das erwartete Verhalten, gemäß Amazon S3-Entwicklerhandbuch :

  

... Informationen zu den Änderungen werden jedoch möglicherweise nicht sofort in Amazon S3 repliziert, und Sie können die folgenden Verhaltensweisen beobachten: Ein Prozess schreibt ein neues Objekt in Amazon S3 und versucht sofort, es zu lesen. Bis die Änderung vollständig weitergegeben wurde, meldet Amazon S3 möglicherweise, dass der Schlüssel nicht existiert.

    
vvd 28.11.2012, 09:39
quelle