gpt4 book ai didi

Azure Rest Api 列表容器 : Parameter Marker

转载 作者:行者123 更新时间:2023-12-03 00:51:15 24 4
gpt4 key购买 nike

大家好,我正在构建一个与 Azure Storage Rest API 交互的客户端。

我正在查看文档 https://learn.microsoft.com/ru-ru/rest/api/storageservices/fileservices/list-containers2 :

并且不理解可以与Azure请求一起发送的参数前缀和标记的使用。

它说:

前缀

Optional. Filters the results to return only containers whose name begins with the specified prefix.

标记

Optional. A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items.

The marker value is opaque to the client.

有了前缀,我认为:

如果我有目录结构:

file01.txt
images/image01.jpg
images/folder/image001.jpg
fightVideo/subFolder/current/video001.mpg
fightVideo/subFolder/current/video002.mpg

If I give prefix container name as "fight". It should return fightVideo.

但我不确定。

对于Marker我不明白它有什么用?

Please can someone explain the use of Prefix and Marker with examples?

最佳答案

在列出容器的上下文中,如果您指定 prefix参数它将列出以该前缀值开头的容器名称。它与列出 blob 无关。

List blobs 操作也支持这个prefix参数,当您指定此参数时,它将列出以该前缀值开头的 blob 名称。

因此,您给出的示例用于列出 blob,并且当您指定 flight 时作为那里的前缀,您将返回 fightVideo/subFolder/current/video001.mpgfightVideo/subFolder/current/video002.mpg响应,但当您调用具有此前缀的列表容器时不响应。

关于marker ,Kalyan 的解释是正确的,但让我补充一点。

本质上,Azure 存储服务是一项共享服务,您根本无法要求它一次性返回所有结果(如果我们从 SQL 世界进行类比,您根本无法执行 SELECT * FROM TABLE 之类的操作)事物)。对服务的每个请求都会分配一个预定义的超时,并且响应将包括在该时间内获取的项目+(如果服务认为有更多可用数据的话,可选的 token )。该 token 称为 continuation token 。为了获取下一组项目,您需要在下一个请求的标记参数中传递此继续 token 。

每次调用存储服务都会尝试返回预定义的最大项目数。对于列出 Blob 容器/Blob,此限制为 5000 个项目。对于列出表/实体,此限制为 1000 个项目。如果您的帐户中有更多项目,那么除了此数据存储服务之外,还会返回一个继续 token ,告诉您有更多可用数据。

请注意,即使存在限制,但您不能总是假设您会获得这些记录数。根据多种条件,您很可能没有取回任何数据,但仍收到继续 token 。因此您的代码也需要处理这种情况。

关于Azure Rest Api 列表容器 : Parameter Marker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947820/

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