gpt4 book ai didi

python - 分页如何在 Google Cloud Storage Python 客户端库中的 list_blobs 函数中工作

转载 作者:太空狗 更新时间:2023-10-29 20:22:28 25 4
gpt4 key购买 nike

我想使用 Client Library for Python 获取 Google Cloud Storage 存储桶中所有 blob 的列表.

根据documentation我应该使用 list_blobs() 函数。该函数似乎使用两个参数max_resultspage_token 来实现分页。我不确定如何使用它们。

特别是,我从哪里获得 page_token

我原以为 list_blobs() 会提供一个 page_token 供后续调用使用,但我找不到任何关于它的文档。

此外,max_results 是可选的。如果我不提供会怎样?有默认限制吗?如果有,那是什么?

最佳答案

list_blobs() 确实使用了分页,但您没有使用 page_token 来实现它。

工作原理:

list_blobs() 的工作方式是它返回一个迭代器,该迭代器迭代所有结果,在幕后分页。因此,简单地执行此操作将使您获得所有结果,并根据需要获取页面:

for blob in bucket.list_blobs()
print blob.name

文档错误/误导:

截至 2017 年 4 月 26 日,文档是这样说的:

page_token (str) – (Optional) Opaque marker for the next “page” of blobs. If not passed, will return the first page of blobs.

这意味着结果将是单页结果,page_token 确定是哪一页。这是不正确的。结果迭代器迭代多个页面。 page_token 实际上代表的是迭代器应该在哪个页面START。如果没有提供 page_token,它将从第一页开始。

帮助了解:

max_results 限制迭代器返回的结果总数。

如果您需要,迭代器会公开页面:

for page in bucket.list_blobs().pages:
for blob in page:
print blob.name

关于python - 分页如何在 Google Cloud Storage Python 客户端库中的 list_blobs 函数中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com