Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 通过boto恢复s3存储桶列表_Amazon S3_Boto - Fatal编程技术网

Amazon s3 通过boto恢复s3存储桶列表

Amazon s3 通过boto恢复s3存储桶列表,amazon-s3,boto,Amazon S3,Boto,我迭代了200万个对象:- conn = boto.connect_s3('xxx','xxx') bucket = conn.lookup('bucket_name') for key in bucket.list(): somefunction(key.name) 假设它在第一百万个对象上失败,我将如何从该点开始恢复此操作?我通过查看boto源找到了答案 def list(self, prefix='', delimiter='', marker='', headers=None):

我迭代了200万个对象:-

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

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

假设它在第一百万个对象上失败,我将如何从该点开始恢复此操作?

我通过查看boto源找到了答案

def list(self, prefix='', delimiter='', marker='', headers=None):

将key.name传递给marker将允许您从该点恢复操作。

使用
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