我的问题与前一个问题有关。 我创建了一个新的线程,因为这个问题与前一个不同
这篇文章对我没有帮助
我需要在DataRicks上用python将一些文件从一个AWS/S3 bucket/文件夹复制到另一个AWS/S3 bucket文件夹
我的源S3存储桶/文件夹如下:
source_s3_bucket
folder_name1
folder_name2
folder_name3
folder_name4
deepest_folder_name
file1
file2
....
file11500
目标s3存储桶/文件夹:
destination_s3_bucket
dest_folder_name1
dest_folder_name2
dest_folder_name3
deepest_folder_name (this folder name must be exactly same as the source one "deepest_folder_name")
file1
file2
....
file11500
此外,“dest_folder_nameX”与源文件夹不同,源文件夹和目标文件夹的深度也不同。但是,源bucket中最深的文件夹名必须保留在目标bucket中
所有文件必须完全复制并保持相同的名称
我尝试过Python 3编码:
import boto3
s3 = boto3.client('s3')
s3_resource = boto3.resource('s3')
for key in s3.list_objects(Bucket=source_bucket, Prefix=source_prefix)['Contents']:
files = key['Key']
copy_source = {'Bucket': source_bucket,'Key': files}
s3_resource.meta.client.copy(CopySource=copy_source, Bucket=dest_bucket, Key=dest_prefix)
但是,没有文件被复制到目标文件夹,我如何才能保留“最深的文件夹名称”
更新 “最深的文件夹”意味着我必须保留该层子文件夹的名称,并将它们和其中的文件复制到目标
比如说,, 在源存储桶中:
folder_name_abc
folder_name_dfr
folder_name_typ # this folder names must be kept
file1
file2
In destination bucket:
folder_name_typ # this folder names must be exactly same as the source
file1
file2
谢谢
棘手的部分是操纵对象关键点的“路径”部分
您可以使用以下内容:
相关问题 更多 >
编程相关推荐