У нас есть огромное количество ключей в ковше, B
, на S3, и нам нужно скачать их с s3 с помощью boto
, а затем перебрать все их в python. Единственный способ, которым мы нашли до сих пор получения ключей является вызовом list()
, который пытается загрузить все ключи от B
сразу, то есть:Получить ключи в кусках от AWS S3
bucket = boto.connect_s3().get_bucket(`B`)
keys = bucket.list()
Это всегда висит у нас, по-видимому из-за огромного количество ключей. Он отлично работает, если мы получаем ключи для другого ведра с меньшим количеством общих ключей или если используется префикс. Мы хотели бы избежать использования префикса для ведра B
по конкретным причинам. Есть ли способ получить все ключи от B
, но в кусках?
Учитывая, что http://boto.readthedocs.org/en/latest/ref/s3.html#boto.s3.bucket.Bucket.list как ссылка, список вызовов boto() также предоставляет функцию разбивки на страницы. Единственное, что вам придется перебирать и хранить список ключей в другом списке. –