通过boto恢复s3桶列表

时间:2011-08-18 11:28:23

标签: amazon-s3 boto

我正在迭代200多万件物品: -

conn = boto.connect_s3('xxx','xxx')
bucket = conn.lookup('bucket_name')

for key in bucket.list():
  somefunction(key.name)

说它在第一百万个对象失败了,我该怎样从那一点开始恢复这个操作?

2 个答案:

答案 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
相关问题