Есть ли быстрый способ получить лексически максимальный ключ в корзине aws с соответствующим префиксом - PullRequest
0 голосов
/ 21 апреля 2020

Это лучший способ получить последний ключ (в лексическом порядке), который находится в корзине s3 с соответствующим префиксом, используя boto3 в python

В настоящее время выполняется следующее:

bucket = 'hello'
prefix = 'is/it/me/your/looking/for'
paginator = s3.get_paginator('list_objects_v2')
last_key = None
for page in paginator.paginate(Bucket=bucket, Prefix=prefix):
    for obj in page['Contents']:
        last_key = obj['Key']

очевидно, что это сказывается на росте числа объектов, соответствующих префиксу.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы четко упомянули, что вам нужна boto3 версия, но вот рабочая версия cli. Это может дать вам некоторую подсказку.

aws s3api list-objects --bucket hello --prefix "is/it/me/your/looking/for" --query "reverse(sort_by(Contents,&Key))"

В вашем коде это может быть что-то вроде этого (извините, не знаком с python)

query = 'reverse(sort_by(Contents,&Key))'
for page in paginator.paginate(Bucket=bucket, Prefix=prefix, Query=query):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...