gpt4 book ai didi

Python Azure SDK : Using list_blobs to get more than 5. 000 结果

转载 作者:太空狗 更新时间:2023-10-30 01:28:59 27 4
gpt4 key购买 nike

我在使用 Python Azure SDK 时遇到问题,并且在 Stack Overflow 和 Msdn 论坛上都没有找到任何内容。

我想使用 Azure SDK list_blobs() 获取 Blob 列表 - 数量超过 5000 个(这是 max_result)。

如果我查看 SDK 本身中的代码,我会看到以下内容:

    def list_blobs(self, container_name, prefix=None, marker=None,
maxresults=None, include=None, delimiter=None):

“标记”的描述为:

    marker:
Optional. A string value that identifies the portion of the list
to be returned with the next list operation. The operation returns
a marker value within the response body if the list returned was
not complete. The marker value may then be used in a subsequent
call to request the next set of list items. The marker value is
opaque to the client.

我的问题是我不知道如何使用标记来获取下一组 5.000 个结果。如果我尝试这样的事情:

    blobs = blobservice.list_blobs(target_container, prefix= prefix)            
print(blobs.marker)

然后标记始终为空,我认为这是因为 list_blobs() 已经从响应中解析了 blob。

但如果是这种情况,那么我该如何以有意义的方式实际使用标记呢?

如果这是一个愚蠢的问题,我很抱歉,但这实际上是我第一个没有找到答案的问题,即使在广泛搜索之后也是如此。

干杯!

最佳答案

SDK 在名为 next_marker 的变量中返回继续标记。您应该使用它来获取下一组 blob。请参阅下面的代码作为示例。在这里,我一次列出容器中的 100 个 blob:

from azure import *
from azure.storage import *

blob_service = BlobService(account_name='<accountname>', account_key='<accountkey>')
next_marker = None
while True:
blobs = blob_service.list_blobs('<containername>', maxresults=100, marker=next_marker)
next_marker = blobs.next_marker
print(next_marker)
print(len(blobs))
if next_marker is None:
break
print "done"

附注上面的代码在最后一次迭代时抛出异常。不知道为什么。但它应该会给你一个想法。

关于Python Azure SDK : Using list_blobs to get more than 5. 000 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24302487/

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