gpt4 book ai didi

python - 如何使用list_objects_v2从S3获取超过1000个对象?

转载 作者:行者123 更新时间:2023-12-02 09:51:59 29 4
gpt4 key购买 nike

我在 s3 上有超过 500,000 个对象。我正在尝试获取每个对象的大小。我正在使用以下 python 代码

import boto3

bucket = 'bucket'
prefix = 'prefix'

contents = boto3.client('s3').list_objects_v2(Bucket=bucket, MaxKeys=1000, Prefix=prefix)["Contents"]

for c in contents:
print(c["Size"])

但它只给出了前 1000 个对象的大小。根据文档,我们无法获取超过 1000 个。有什么方法可以获取更多?

最佳答案

内置的 boto3 Paginator 类是克服 list-objects-v2 1000 条记录限制的最简单方法。可以按如下方式实现

s3 = boto3.client('s3')

paginator = s3.get_paginator('list_objects_v2')
pages = paginator.paginate(Bucket='bucket', Prefix='prefix')

for page in pages:
for obj in page['Contents']:
print(obj['Size'])

了解更多详情:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Paginator.ListObjectsV2

关于python - 如何使用list_objects_v2从S3获取超过1000个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54314563/

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