>>> from boto.s3.connection import S3Connection
>>> conn = S3Connection()
>>> bucket = conn.get_bucket('mybucket')
>>> k = Key(bucket)
>>> k.set_contents_from_filename('myfile')
---------------------------------------------------------------------------
error Traceback (most recent call last)
...
857 raise BotoServerError(response.status, response.reason, body)
858 elif e:
--> 859 raise e
860 else:
861 msg = 'Please report this exception as a Boto Issue!'
error: [Errno 32] Broken pipe
しかも、50KBぐらいのファイルだと問題ないのに、500KBくらいになるとダメ。東京リージョンのサーバから実行してるから、US の方が距離的に遠いし、時間がかかってタイムアウトとは考えにくい。しかも、500KBってそんなに大きいサイズではないし。
同じ事象で困っている人がいて、以下のページが参考になりました。
broken pipe error, non US-Standard region
解決方法としては、Connection を作成する時に、host を指定すること。
>>> from boto.s3.connection import S3Connection >>> conn = S3Connection(host='s3-ap-northeast-1.amazonaws.com')
指定するエンドポイントは、ここから参照できます。
Amazon Web Services Glossary - Regions and Endpoints
0 件のコメント:
コメントを投稿