在S3 bu里数钥匙

2024-04-26 17:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

使用下面的boto3库和python代码,我可以遍历S3 bucket和前缀,打印出前缀名和密钥名,如下所示:

import boto3
client = boto3.client('s3')

pfx_paginator = client.get_paginator('list_objects_v2')
pfx_iterator = pfx_paginator.paginate(Bucket='app_folders', Delimiter='/')
for prefix in pfx_iterator.search('CommonPrefixes'):
    print(prefix['Prefix'])

    key_paginator = client.get_paginator('list_objects_v2')
    key_iterator = key_paginator.paginate(Bucket='app_folders', Prefix=prefix['Prefix'])
    for key in key_iterator.search('Contents'):
        print(key['Key'])

在key循环中,我可以放入一个计数器来计算密钥(文件)的数量,但这是一个昂贵的操作。有没有一种方法可以在给定bucket名称和前缀的情况下进行一次调用,并返回该前缀中包含的键数(即使它超过1000个)?

更新:我发现了一个post here,它显示了使用AWS CLI执行此操作的方法,如下所示:

^{pr2}$

有没有一种方法可以与boto3api类似?


Tags: 方法keyclientgetprefixobjectsbucket密钥