2016-03-31 7 views
1

単純なスクリプトのように見せていますが、引き続きエラーが発生します。誰かが私が逃していることを指摘できれば、私はとても感謝しています。同じS3バケット内のファイルをPythonで移動/コピーしてください。

私は、スクリプトに直接キーを置くべきではないことを知っていることを覚えておいてください。これは最高のPythonではないことが分かっていますが、これは単なるテストなので、

スクリプト:

import boto 

    def s3test(): 
     s3 = boto.connect_s3('MY_ACCESS_KEY', 'MY_SECRET_KEY') 
     bucket = s3.get_bucket('the-bucket-name') 
     bucket.copy_key('location1/item',bucket,'location2/item') 

    if __name__ == "__main__": 
     s3test() 

エラー:

Traceback (most recent call last): 
     File "script/path", line 9, in <module> 
     s3test() 
     File "script/path", line 6, in s3test 
     bucket.copy_key('location1/item',bucket,'location2/item') 
     File "C:\Python27\lib\site-packages\boto\s3\bucket.py", line 889, in copy_key           
     response.reason, body) 
    S3ResponseError: S3ResponseError: 404 Not Found 
     <Error> 
      <Code>NoSuchBucket</Code> 
      <Message>The specified bucket does not exist</Message> 
      <BucketName>&lt;Bucket: the-test-bucket&gt;</BucketName> 
      <RequestId>ABCDEFG12345</RequestId> 
      <HostId>HTLIxTQI87qC56FG2c0y570E+Y2L56e7806OJhAXk2x5i7uzfd4XU/nhmjHVpLqz9</HostId> 
     </Error> 

答えて

2

は、あなたのコード内のいくつかの問題があります。

bucket objectではなく、copy-key引数でbucket nameを使用してください。また、ソースと宛先キーの順序を切り替えました。

copy_key(new_key_name, src_bucket_name, src_key_name) 

bucket.copy_key('location2/item','the-bucket-name','location1/item') 

が有効です。

関連する問題