Чтобы ответить на ваш вопрос: S3 API не предоставляет альтернативы.
Использование нескольких потоков или асинхронного ввода-вывода - это надежный способ сократить реальное время, необходимое для выполнения нескольких запросов, выполняя их вПараллельно, как вы упомянули.
Дальнейшее усовершенствование, которое, возможно, стоит рассмотреть, заключалось бы в том, чтобы обернуть эту логику в лямбда-функцию AWS, которую можно вызывать с именем корзины и списком ключей объекта в качестве аргументов.Распараллелить операции с контейнерами внутри лямбда-функции и вернуть результаты вызывающему, уже проанализированному и обработанному, в одном аккуратном ответе.Это позволило бы использовать большую часть полосы пропускания между функцией и S3 в сети AWS в этом регионе, что должно быть самым быстрым местом для этого.Лямбда-функции - отличный способ абстрагироваться от любого взаимодействия AWS, которое требует нескольких запросов API.
Это также позволяет при желании написать вашу лямбда-функцию на другом языке, нежели основной проект, потому что язык не имеет значения через эту границу - это просто JSON, пересекающий границу между ними.На мой взгляд, некоторые взаимодействия AWS проще (или выполнять сложными последовательными / параллельными способами) на некоторых языках, чем на других, поэтому, например, ваша функция может быть написана на Node.JS, даже если ваш проект написан на Python.и это не будет иметь никакого значения, когда речь заходит о вызове funcrion и использовании генерируемого им ответа.