При использовании метода resource в boto3 запросы фактически транслируются в другие вызовы API. Однако непросто увидеть, какие звонки происходят "за кадром". Иногда один метод может переводиться в несколько вызовов (например, ListObjects
и HeadObject
).
Вы можете рассмотреть возможность использования метода вызовов client , поскольку они отображают 1: 1 в API звонки на AWS:
import boto3
s3_client = boto3.client('s3')
paginator = s3_client.get_paginator('list_objects_v2')
response_iterator = paginator.paginate(Bucket='bucket-name')
for page in response_iterator:
for object in page['Contents']:
print(object['Key'], object['LastModified'])
Я бы также рекомендовал вам посмотреть Amazon S3 Inventory . Он может предоставить ежедневный CSV-файл, содержащий список всех объектов и их метаданных. Это очень полезно для больших ведер (таких как ваше).