В корзинах S3, содержащих большое количество ключей, перечисление ключей через API REST является мучительно медленным процессом, поскольку
- Вы можете перечислить только 1000 ключей за раз.
- Единственный способ определить 5001-й ключ (насколько я могу судить) - это перечислить первые 1000 ключей, перечислить следующие на основе следующего маркера в ответе, а затем рекурсивно, пока не дойдете до 5001.
- Запросы API S3 REST имеют очень большую задержку, запрос 1000 ключей обычно занимает несколько секунд.
Учитывая, что выполнение 100 одновременных запросов REST со списком ключей не должно замедлять работу отдельных запросов, в противном случае этот процесс можно было бы оптимизировать за счет распараллеливания. Но если мой алгоритм «глупый» и просто разбивает возможное ключевое пространство на заранее определенные маркеры (например, '', 'a', 'b', 'c', 'd', 'e'... ) на самом деле это не ускорит вывод списка ключей в корзину, где каждый ключ начинается с «images/».
Поэтому мне интересно, знает ли кто-нибудь, кто действительно имеет опыт работы с S3, лучший способ обойти пространство ключей ведра ИЛИ экспериментировал ли кто-нибудь с адаптивным (то есть «не глупым») алгоритмом для улучшения списка ключей с параллелизмом.