Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python使用boto在同一S3存储桶中移动/复制文件_Python_Amazon Web Services_Amazon S3_Boto - Fatal编程技术网

Python使用boto在同一S3存储桶中移动/复制文件

Python使用boto在同一S3存储桶中移动/复制文件,python,amazon-web-services,amazon-s3,boto,Python,Amazon Web Services,Amazon S3,Boto,我正在尝试运行一个看似简单的脚本,但仍然会出现错误。如果有人能指出我遗漏了什么,我将非常感激 请注意,我知道我不应该将键直接放在脚本中,我知道它不是最好的Python,但这只是一个测试,所以我可以学习如何完成所有这些 剧本: import boto def s3test(): s3 = boto.connect_s3('MY_ACCESS_KEY', 'MY_SECRET_KEY') bucket = s3.get_bucket('the-buc

我正在尝试运行一个看似简单的脚本,但仍然会出现错误。如果有人能指出我遗漏了什么,我将非常感激

请注意,我知道我不应该将键直接放在脚本中,我知道它不是最好的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>

代码中几乎没有问题

复制键
参数中使用
存储桶名称
,而不是
存储桶对象
。您切换了源和目标密钥顺序

copy_key(new_key_name, src_bucket_name, src_key_name)

bucket.copy_key('location2/item','the-bucket-name','location1/item')
应该有用