为了账号安全,请及时绑定邮箱和手机立即绑定

在每个 s3 存储桶中搜索并查看给定文件夹是否存在

在每个 s3 存储桶中搜索并查看给定文件夹是否存在

慕容708150 2022-12-20 11:35:05
我正在尝试从 s3 Buckets 中的特定文件夹中获取文件:我在 s3 中有 4 个桶,名称如下:1 - 'PDF'2 - 'TXT'3 - 'PNG'4 - 'JPG'所有 s3 存储桶的文件夹结构如下所示:1- PDF/analysis/pdf-to-img/processed/files2- TXT/report/processed/files3- PNG/analysis/reports/png-to-txt/processed/files4- JPG/jpg-to-txt/empty我必须检查此文件夹前缀processed/files是否存在于存储桶中,如果存在,我将读取这些目录中存在的文件,否则我将忽略它们。代码:buckets = ['PDF','TXT','PNG','JPG']client = boto3.client('s3')for i in bucket:    result = client.list_objects(Bucket=i,Prefix = 'processed/files', Delimiter='/')    print(result)如果文件夹结构相同,我可以进入每个目录,但是当每个存储桶的文件夹结构不同时,我该如何处理?
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

这也许是一个漫长的过程。


 buckets = ['PDF','TXT','PNG','JPG']

    s3_client = getclient('s3')

    for i in buckets:

        result = s3_client.list_objects(Bucket= i, Prefix='', Delimiter ='')

        contents = result.get('Contents')

        for content in contents:

            if 'processed/files/' in content.get('Key'):

                print("Do the process")

您可以从 s3 存储桶中获取目录列表。如果它包含所需的文件夹,请执行所需的过程。


查看完整回答
反对 回复 2022-12-20
?
Qyouu

TA贡献1786条经验 获得超11个赞

import boto3


client = boto3.client('s3')

bucket_name = "bucket_name"

prefix = ""


s3 = boto3.client("s3")


result = client.list_objects(Bucket=bucket_name, Delimiter='/')

   for obj in result.get('CommonPrefixes'):  

       prefix = obj.get('Prefix')

       file_list = ListFiles(client,bucket_name,prefix)

       for file in file_list:

          if "processed/files" in file:

              print("Found",file)


def ListFiles(client, bucket_name, prefix):

    _BUCKET_NAME = bucket_name

    _PREFIX = prefix

    """List files in specific S3 URL"""

    response = client.list_objects(Bucket=_BUCKET_NAME, Prefix=_PREFIX)


    for content in response.get('Contents', []):

        #print(content)

        yield content.get('Key')

//img1.sycdn.imooc.com//63a133810001a0a511940144.jpg

查看完整回答
反对 回复 2022-12-20
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信