9

私はPythonとBotoを使用しています

これは私のコードです:

key = bucket.get_key(key_name)
if not key:
    print 'error, key does not exist'
    return
data = key.get_contents_as_string()

時々(ランダムに表示されます)この例外が発生します:

S3ResponseError:S3ResponseError:404が見つかりません

注:ファイルは1つのサーバーによってアップロードされ、その直後に別のサーバー(別の大陸にある)が上記のコードを実行しています。

トレースバック:

トレースバック(最後の最後の呼び出し):ファイル "/test.py"、行222、_process_response

data = key.get_contents_as_string()ファイル "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py"、

1201行目、get_contents_as_string response_headers = response_headers)ファイル "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py"、

行1093、get_contents_to_file response_headers = response_headers)ファイル "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py"、

996行目、get_file override_num_retries = override_num_retries)ファイル "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py"、

211行目、open override_num_retries = override_num_retries)ファイル "/usr/lib/python2.6/site-packages/boto-2.1.1-py2.6.egg/boto/s3/key.py"、

165行目、open_read self.resp.reason、body)S3ResponseError:S3ResponseError:404 Not Found

NoSuchKey指定されたキーは存在しません。key_nameidhost_id

だから私は鍵を手に入れましたが、それを読んでみると「見つかりません」と表示されます。何か案が ?

4

1 に答える 1

8

Amazon S3 開発者ガイドによると、これは予想される動作です。

... ただし、変更に関する情報が Amazon S3 全体にすぐにレプリケートされない可能性があり、次の動作が見られる場合があります: プロセスが新しいオブジェクトを Amazon S3 に書き込み、すぐにそれを読み取ろうとします。変更が完全に反映されるまで、Amazon S3 は「キーが存在しません」と報告する場合があります。

于 2012-11-28T09:39:55.577 に答える