使用下面的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类似?
您可以使用
MaxKeys=1000
参数来完成。 对于您的情况:一般情况下:
^{pr2}$1000倍后会更便宜:) Documentation here
相关问题 更多 >
编程相关推荐