使用Python boto3将S3桶的内容复制到另一个桶



所以对于寻找功能齐全的代码的人来说,您可能正在寻找。复制并运行下面的代码片段,并将桶名[bucketab]&[bucketbc1]分别更改为源桶和目标桶。虽然你可能在StackOverflow中遇到了很多解决方案,但似乎没有人给出正确的解决方案,经过深思熟虑,我得到了自己的代码,可以处理缺失的属性,这些属性应该与其他答案一起使用,否则

import boto3
s3_resource = boto3.client('s3')
keys=[]
for obj in s3_resource.list_objects_v2(Bucket='bucketab')['Contents']:
keys.append(obj['Key'])
#Using Boto3 Resource to do the copy
s3_resource = boto3.resource('s3')
for key in keys:
copy_source = {
'Bucket': 'bucketab',
'Key': key
}
bucket = s3_resource.Bucket('bucketbc1')
bucket.copy(copy_source, key)    
```
import boto3
s3_resource = boto3.client('s3')
paginator = s3_resource.get_paginator('list_objects_v2')
page_iterator = paginator.paginate(Bucket='bucketab')
keys=[]
for page in page_iterator:
for i in page['Contents']:
keys.append(i['Key'])
#Using Boto3 Resource to do the copy
s3_resource = boto3.resource('s3')
for key in keys:
copy_source = {
'Bucket': 'bucketab',
'Key': key
}
bucket = s3_resource.Bucket('bucketbc1')
bucket.copy(copy_source, key)   

最新更新