Я не знаю ни одного способа в S3, чтобы перечислить второй самый старый объект без перечисления всех объектов в заданном префиксе, а затем явно отсортировать этот список по дате. Если вам нужно сделать это, то вот несколько идей:
- если объекты только когда-либо добавлены (не удалены), то вы могли бы, возможно, использовать ключ именование, когда объекты закачанные, что позволяет легко найти 2-й старейший объект, например 0001-xxx, 0002-xxx. Затем вы можете найти второй старейший объект, указав объекты с префиксом 0002.
- поддерживать независимый индекс объектов в базе данных RDBMS или KV, что позволяет легко находить ключ S3 второго старейшего объекта в любой части вашего S3. Возможно, DB поддерживается с помощью функции Lambda, которая называется, когда объекты помещаются или удаляются.
- использовать функцию Lambda, инициированную на объекте PUT, который перечисляет все объекты в соответствующей «папке» и записывает ключ второго старейшего объекта обратно в тип объекта индекса в той же папке (или как метаданные на известном индексный объект). Затем вы можете найти второй старейший, получив содержимое объекта индекса (или его метаданных).
Вариант №2 может быть лучшим, поскольку он прост, быстр и гибкий (что, если ваше приложение со временем изменится, вы обнаружите, что вам также необходимо знать 4-й старейший объект или второй новейший объект).
Не могли бы вы обновить свой вопрос с помощью типовой структуры каталогов, выделив файлы, которые вы хотите скачать? –