我正在迭代200多万件物品: -
conn = boto.connect_s3('xxx','xxx')
bucket = conn.lookup('bucket_name')
for key in bucket.list():
somefunction(key.name)
说它在第一百万个对象失败了,我该怎样从那一点开始恢复这个操作?
答案 0 :(得分:8)
我通过查看boto来源找到了它。
def list(self, prefix='', delimiter='', marker='', headers=None):
将key.name传递给marker将允许您从该点恢复操作。
答案 1 :(得分:0)
使用marker
属性恢复请求的示例。
如果您想通过子树递归或者有数百万个对象要抓取并且不希望它们放在一个列表中,这也很有用。
marker = None
while True:
keys = bucket.get_all_keys(marker=marker)
last_key = None
for k in keys:
# TODO Do something with your keys!
last_key = k.name
if not keys.is_truncated:
break
marker = last_key