2016-06-12 4 views
1

2つのs3バケットがあり、 "srcs3bck"と "dsts3bck"を取ると、srcs3bckにテキストファイルがあります。私はStackOverFlow questionで提案された答えを送り先にコピーしようとしました。しかし、私は404の応答エラーを取得しているとき、私のソースバケットは利用できないと述べています。2つのs3バケット間をコピーすると404エラーが発生する

しかし、私はバケツを取得し、すべてのケースを取得しようとしました。キーを表示しています。

>>> import boto 
>>> conn=boto.connect(<credentials>) 
>>> src = conn.get_bucket("srcs3bck") 
>>> src.get_all_keys() 
printing my key list properly. 
>>> dst = conn.get_bucket("dsts3bck") 
>>> 
>>> src.get_all_keys() 
[<Key: srcs3bck,Test2.txt>] 
>>> 
>>> src.list() 
<boto.s3.bucketlistresultset.BucketListResultSet object at 0x03768310> 
>>> x=src.list() 
>>> for i in x: print i 
<Key: srcs3bck,Test2.txt> 
>>> for i in x: print i.key 
Test2.txt 
>>> for i in x: dst.copy_key(i.key,src,i.key) 
....... 
ignoring other lines 
.... 
S3ResponseError: S3ResponseError: 404 Not Found 
<Error><Code>NoSuchBucket</Code><Message>The specified bucket does not exist</Message><BucketName>&lt;Bucket: srcs3bck&gt;</BucketName><RequestId>358C4C2420BB91E9</RequestId><HostId>ws6wagGIZqquStqisfGuYHeMMscmmR2Iu8LL4jCv9KpLBzxieiryI/mRwxwz4aQ=</HostId></Error> 
>>>  

これ以外に何か変更する必要があります。私は何をしているのか分からない。誰も私がこれを解決するのを助けることができますか?事前に感謝します

答えて

4

copy_keyメソッドは実際にはバケットオブジェクトではなく、バケット名を探しています。だから代わりにこれを試してください:

for i in x: dst.copy_key(i.key,src.name,i.key) 
関連する問題