gpt4 book ai didi

python - Boto3 - 将文件从一个文件夹递归复制到 S3 中的另一个文件夹

转载 作者:行者123 更新时间:2023-11-28 19:05:25 26 4
gpt4 key购买 nike

我是我的 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 的过滤器)From 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)

关于python - Boto3 - 将文件从一个文件夹递归复制到 S3 中的另一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47674385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com