![](/img/trans.png)
[英]how to copy files and folders from one S3 bucket to another S3 using python boto3
[英]Boto3 - Recursively copy files from one folder to another folder in S3
我是我的S3存储桶,有很多文件采用不同的文件格式。 因此,我想将所有扩展名为.JSON的子文件夹复制到另一个文件夹。
当前结构:
S3://mybucket/f1/file.JPG
S3://mybucket/f1/newfile.JSON
S3://mybucket/f2/Oldfile.JSON
它(JSON文件)应复制到以下文件夹中:
S3://mybucket/arrange/newfile.JSON
S3://mybucket/arrange/Oldfile.JSON
我尝试了这个(但是没有针对JSON的过滤器) 来自stackoverflow
import os
import boto3
old_bucket_name = 'SRC'
old_prefix = 'A/B/C/'
new_bucket_name = 'TGT'
new_prefix = 'L/M/N/'
s3 = boto3.resource('s3')
old_bucket = s3.Bucket(old_bucket_name )
new_bucket = s3.Bucket(new_bucket_name )
for obj in old_bucket.objects.filter(Prefix=old_prefix):
old_source = { 'Bucket': old_bucket_name,
'Key': obj.key}
# replace the prefix
new_key = obj.key.replace(old_prefix, new_prefix)
new_obj = new_bucket.Object(new_key)
new_obj.copy(old_source)
您可以为JSON文件保留一个过滤器,如下所示:
for obj in old_bucket.objects.filter(Prefix=old_prefix):
if obj.key.endswith('.JSON'):
old_source = { 'Bucket': old_bucket_name,
'Key': obj.key}
# replace the prefix
new_key = obj.key.replace(old_prefix, new_prefix)
new_obj = new_bucket.Object(new_key)
new_obj.copy(old_source)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.