Google cloud storage 在GCS bucket python仍在编写时获取其中的所有项

Google cloud storage 在GCS bucket python仍在编写时获取其中的所有项,google-cloud-storage,Google Cloud Storage,我正在使用python GCS客户端 我想列出在给定时间内属于一个bucket的所有blob,但是系统一直在向这个bucket写入新数据,而且速度比我读取的要快得多 有没有可能我的 all_blobs = list(client.list_blobs(bucket)) 会永远跑吗? 它不断带来新的东西吗? 它是否在快照上运行并最终完成 非常感谢您可以使用页面令牌在API页面上进行迭代 blobs = bucket.list_blobs(max_results=1000) for blo

我正在使用python GCS客户端

我想列出在给定时间内属于一个bucket的所有blob,但是系统一直在向这个bucket写入新数据,而且速度比我读取的要快得多

有没有可能我的

all_blobs = list(client.list_blobs(bucket))
会永远跑吗? 它不断带来新的东西吗? 它是否在快照上运行并最终完成


非常感谢

您可以使用页面令牌在API页面上进行迭代

blobs = bucket.list_blobs(max_results=1000)
    for blob in blobs:
        print(blob.name)
    print(blobs.next_page_token)
    blobs = bucket.list_blobs(page_token=blobs.next_page_token, max_results=1000)
    for blob in blobs:
        print(blob.name)
本例中有两个有趣的部分

  • 您可以将max_结果设置为1000(最大值),以使用最大页面
  • 下一页标记是返回的最新对象/版本的Base64编码名称,如中所述
文件还提到:

  • 如果blob是在下一页标记之前创建的(比如按字母顺序),则不会通过在下一页上迭代来列出它
  • 相反,如果在下一个页面标记之后创建blob,那么您将在进一步的迭代中看到它

非常感谢,伙计