boto3 версия команды list-objects-v2 --query в интерфейсе командной строки AWS

1

Хотелось бы узнать код python boto3 для ниже AWS CLI

aws s3api list-objects-v2 \
--bucket myBucket \
--prefix path1/path2 \
--query 'reverse(sort_by(Contents,&LastModified))[0]'

я не видел никакой опции запроса для list_objects_v2

https://boto3.readthedocs.io/en/stable/reference/services/s3.html#S3.Client.list_objects_v2

Теги:
python-3.x
amazon-web-services
amazon-s3
boto3

1 ответ

1

Возможности --query в интерфейсе командной строки AWS (CLI) являются функцией самого CLI, а не выполняются во время вызова API.

Если вы используете команду boto3 list_object_v2(), возвращается полный набор результатов.

Затем вы можете использовать Python для управления результатами.

Похоже, что вы хотите перечислить самый последний объект в bucket/path, чтобы вы могли использовать что-то вроде:

import boto3

client = boto3.client('s3',region_name='ap-southeast-2')

response = client.list_objects_v2(Bucket='my-bucket')

print (sorted(response['Contents'], key=lambda item: item['LastModified'])[-1])
  • 0
    Будет ли это работать, если у меня есть объекты более 1000? У меня наверняка есть объекты в 1000 (с)
  • 0
    Вам придется изменить код, чтобы пролистать результаты. Одной из стратегий может быть получение самой последней из каждого набора результатов и сравнение ее с самой последней из каждого последующего набора результатов (сохраняя только «последние» при получении каждой партии из 1000). Кстати, если вы делаете такие вещи время от времени, Amazon S3 Inventory также может быть полезен.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню