我想使用Azure SDKs List_blobs()来获取blob列表 – 超过5.000(这是max_result).
如果我看一下SDK本身的代码,我会看到以下内容:
def List_blobs(self,container_name,prefix=None,marker=None,maxresults=None,include=None,delimiter=None):
‘Marker’的描述是:
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 = Nonewhile 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: breakprint "done"
附:上面的代码在最后一次迭代时抛出异常.不知道为什么.但它应该给你一个想法.
总结以上是内存溢出为你收集整理的Python Azure SDK:使用list_blobs获得超过5.000个结果全部内容,希望文章能够帮你解决Python Azure SDK:使用list_blobs获得超过5.000个结果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)