Dropbox Api v2 - 与list_folders的游标和分页混淆

时间:2016-07-20 14:20:59

标签: dropbox-api

api docs中的files / list _folders方法对于cursor参数的描述有以下内容:

光标 - 将光标移至list_folder /继续查看自上一次查询以来文件夹中的更改内容。

has_more - 如果为true,则可以使用更多条目。将光标传递给list_folder /继续检索其余部分。

https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder

那是什么?如果我再次请求list_folders_continue传递令牌,我是否要求另一页结果或更改文件夹?如果我要求另一页结果,那么应用的限制是多少?我可以控制吗?

文档在共享下也有list_folder方法,它似乎有更精确的游标定义和对limit参数的支持 https://www.dropbox.com/developers/documentation/http/documentation#sharing-list_folders

文件下的方法也会有吗?

2 个答案:

答案 0 :(得分:3)

  

那是什么?如果我再次请求list_folders_continue传递令牌,我是否要求另一页结果或更改文件夹?

两者都是。 / files / list_folder / continue端点既用于返回其他项目页面,也用于将来进一步更新。

/ files / list_folder [/ continue]返回的每个页面大小有限,但没有保证限制,也无法控制该限制。您的应用应该始终检查has_more并回复/ files / list_folder / continue,如果它是true

此外,端点/files/list_folder/sharing/list_folders是具有不同功能的不同端点。

/ files / list_folder端点记录为:

  

返回文件夹的内容。

/ sharing / list_folders端点记录为:

  

返回当前用户有权访问的所有共享文件夹的列表。

两个端点使用不同的游标,分别用于/files/list_folder/continue/sharing/list_folders/continue

答案 1 :(得分:3)

  

那是什么?如果我再向list_folders_continue发出请求   传递令牌,我请求另一页结果或   更改文件夹?如果我要求另一页结果,   应用的限制是多少?我可以控制吗?

我自己的试验和错误实验已经确定Greg发布的“它是两个”的答案是不正确的。具体来说,正确的答案是“它要么”。有关详细信息,请参见下文。

当您调用files/list_folder并返回整个内容列表(has_more值为false)时,返回的光标适用于监视指定路径的后续更改将该光标传递给files/list_folder/continue

如果files/list_folder返回多个内容页面中的第一个(has_more值为true),则返回的光标适合通过传递它来获取下一页内容到files/list_folder/continue。此光标不适合监视更改(自己尝试,您可以使用该光标多次调用continue,并始终获得第二页内容)。

从文档中不完全清楚,但是当从files/list_folder/continue获取内容页面时,每个调用都将返回一个新游标,并且必须将新游标传递给后续调用files/list_folder/continue为了得到下一页。您必须以这种方式将游标链接在一起,直到获得最后一页(has_morefalse)。

files/list_folder/continue的最后一次调用中返回的光标随后可用于files/list_folder/continue的后续调用,以监控第一次调用files/list_folder时指定的原始路径的更改。

因此,光标或者适合监视更改(当返回时has_more值为false)或者它适合于获取后续内容页面(当它返回时) has_more的{​​{1}}值,无论产生光标的调用是true还是files/list_folder,都不是两者都有。