gpt4 book ai didi

python - 如何在某些后缀的s3中从一个桶复制到另一个桶

转载 作者:行者123 更新时间:2023-12-03 16:01:59 25 4
gpt4 key购买 nike

我有 3 个桶 1.commonfolder 2.jsonfolder 3.csvfolder .

  • 通用文件夹将同时包含 json 和 csv 文件
  • 需要将所有 csv 文件复制到 csvfolder
  • 需要将所有json文件复制到json文件夹

  • 下面的代码用于从 commonfolder 获取所有文件之后怎么复制
    import boto3

    s3 = boto3.client('s3')
    def lambda_handler(event, context):
    #List all the bucket names
    response = s3.list_buckets()
    for bucket in response['Buckets']:
    print (bucket)
    print(f'{bucket["Name"]}')
    #Get the files of particular bucket
    if bucket["Name"] == 'tests3json':

    resp = s3.list_objects_v2(Bucket='commonfolder')
    for obj in resp['Contents']:
    files = obj['Key']
    print(files)

    if(filename.split('.')[1].lower()=='json'):
    copyjson(bucket,filename)
    #copyjson(jsonfolder,filename)
    elif(filename.split('.')[1].lower()=='csv'):
    copycsv(bucket, filename)
    #copycsv(csvfolder,filename)
  • 需要创建一个新函数 copyjson,copycsv 来完成这项工作
  • 需要根据文件扩展名从 common-bucket 复制到 csv-bucket 或 json-bucket
  • 最佳答案

    您可以检查以下代码:

    import boto3

    s3 = boto3.resource('s3')

    def lambda_handler(event, context):

    source_bucket = s3.Bucket('01-commonfolder-231')
    json_bucket = s3.Bucket('02-jsonfolder-3435')
    csv_bucket = s3.Bucket('03-csvfolder-4552')

    for object in source_bucket.objects.all():

    #print(object)

    if object.key.endswith('.json'):

    print(f"{object.key} to json bucket")

    copy_object = json_bucket.Object(object.key)
    copy_object.copy({'Bucket': object.bucket_name,
    'Key': object.key})

    elif object.key.endswith('.csv'):

    print(f"{object.key} to csv bucket")

    copy_object = csv_bucket.Object(object.key)
    copy_object.copy({'Bucket': object.bucket_name,
    'Key': object.key})
    我使用我自己的带有测试文件的示例存储桶对此进行了测试:
    aaa.json to json bucket
    bbbbb.csv to csv bucket
    bbbbb.json to json bucket
    hhhh.csv to csv bucket

    关于python - 如何在某些后缀的s3中从一个桶复制到另一个桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62587459/

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