如何使用python boto3将s3对象从一个桶复制到另一个桶

我想将文件从一个s3存储桶复制到另一个存储桶.我收到以下错误:

s3.meta.client.copy(source,dest)
TypeError: copy() takes at least 4 arguments (3 given)

我无法通过阅读文档找到解决方案.这是我的代码:

#!/usr/bin/env python
import boto3
s3 = boto3.resource('s3')
source= { 'Bucket' : 'bucketname1','Key':'objectname'}
dest ={ 'Bucket' : 'Bucketname2','Key':'backupfile'}
s3.meta.client.copy(source,dest)

解决方法:

你可以试试:

import boto3
s3 = boto3.resource('s3')
copy_source = {
      'Bucket': 'mybucket',
      'Key': 'mykey'
    }
bucket = s3.Bucket('otherbucket')
bucket.copy(copy_source, 'otherkey')

要么

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'mybucket',
    'Key': 'mykey'
 }
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')

注意参数的差异

上一篇:python – 从S3读取ZIP文件而不下载整个文件


下一篇:python – 使用Boto 3显示EC2实例名称