【发布时间】:2015-12-03 15:22:54
【问题描述】:
我们在 S3 中的桶 B 中有大量密钥,我们需要使用 boto 从 s3 下载它们,然后在 python 中迭代所有它们。到目前为止,我们发现获取密钥的唯一方法是调用list(),它会尝试一次从B 下载所有密钥,即:
bucket = boto.connect_s3().get_bucket(`B`)
keys = bucket.list()
这对我们来说总是挂起,大概是由于大量的键。如果我们获得具有较少总键数的不同存储桶的键,或者使用前缀,则它工作正常。出于项目特定的原因,我们希望避免使用桶 B 的前缀。有什么方法可以从B 获取所有密钥,但分块?
【问题讨论】:
-
以boto.readthedocs.org/en/latest/ref/… 为参考,boto 的 call list() 也提供了分页功能。唯一的问题是您必须对其进行迭代并将密钥列表存储在其他列表中。
标签: python amazon-web-services amazon-s3 boto