如何使用python boto3将s3对象从一个存储桶复制到另一个存储桶 [英] how to copy s3 object from one bucket to another using python boto3

查看:519
本文介绍了如何使用python boto3将s3对象从一个存储桶复制到另一个存储桶的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to copy a file from one s3 bucket to another. I get the following error:

s3.meta.client.copy(源,目标)
TypeError:copy()至少接受4个参数(给定3个参数)

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

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

I'am unable to find a solution by reading the docs. Here is my code:

#!/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 boto3将s3对象从一个存储桶复制到另一个存储桶的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆