Search Box.com搜索API以检索确定文件夹中的所有文件
我正在搜索一种方法来获取特定文件夹的所有文件 但是我在网上找不到足够的信息 我考虑这样的事情:(我还假设用access_令牌设置一个自定义头) 这种方法不起作用,我认为查询不接受正则表达式 有什么想法吗Search Box.com搜索API以检索确定文件夹中的所有文件,search,box-api,Search,Box Api,我正在搜索一种方法来获取特定文件夹的所有文件 但是我在网上找不到足够的信息 我考虑这样的事情:(我还假设用access_令牌设置一个自定义头) 这种方法不起作用,我认为查询不接受正则表达式 有什么想法吗 PS:一个真实的用例将有助于理解这个问题: 我的文件夹: folderOne: | |_file1.jpg | |_file2.doc | |_folder1 | |_file3.jpg | |_folder2 | |_file4.pdf 对于搜索请求,我希望只获得fil
PS:一个真实的用例将有助于理解这个问题: 我的文件夹:
folderOne:
|
|_file1.jpg
|
|_file2.doc
|
|_folder1
| |_file3.jpg
| |_folder2
|
|_file4.pdf
对于搜索请求,我希望只获得
file1.jpg
、file2.doc
和file4.pdf
,通过查询文件夹的内容,然后在客户端过滤文件
项,您可以最轻松地完成这一任务
curl https://api.box.com/2.0/folders/FOLDER_ID/items \
-H "Authorization: Bearer ACCESS_TOKEN"
这将返回一个项目集合,您可以从中选择其类型
为文件
的项目
{
"total_count": 4,
"entries": [
{
"type": "folder",
"id": "192429928",
"name": "folder1"
},
{
"type": "file",
"id": "818853862",
"name": "file1.jpg"
},
{
"type": "file",
"id": "818853843",
"name": "file2.doc"
},
{
"type": "file",
"id": "818853832",
"name": "file4.pdf"
}
]
}
分页
框将在返回任何文件元数据之前返回所有文件夹元数据。您可以对这些文件夹进行计数,以确定仅文件分页的适当偏移量。例如,如果您的Box文件夹有13个子文件夹,并且您希望一次翻页25个文件:
/folders/FOLDER_ID/items?limit=25&offset=13
/folders/FOLDER_ID/items?limit=25&offset=38
/folders/FOLDER_ID/items?limit=25&offset=63
/folders/FOLDER_ID/items?limit=25&offset=...
我的问题与OP-an检索所有文件的问题相同,我最初认为唯一的解决方案是解析所有文件夹(包含子文件夹、子子文件夹等),这是一项非常繁琐的任务。这种暴力方法的另一个问题是,Box的查询限制为每个用户每分钟1000个API请求,因此查询整个文件夹树是不可行的 使用搜索API是一个好主意,但是,使用Box API无法使用空白查询或星号进行搜索。幸运的是,我需要的文件都是pdf格式的,所以我没有搜索特定的文件名,而是查询“pdf”。这会将用户帐户中包含的所有PDF返回给我。我还添加了
type=file
,以筛选出文件夹名称可能包含“pdf”一词的任何文件夹。以下是我的全部疑问:
https://api.box.com/2.0/search?query=pdf&type=file&offset=0&limit=100
我添加了
offset
和limit
参数以供参考。我的目标是分页。。。然后,如果我在该请求限制和偏移量处追加,我会得到一个失败的分页,在该分页中,当偏移量只有文件夹时,我可能会有“空”页面……这种解决方法在理论上是好的,但不是这个问题的可接受答案……;)有两件事:首先,搜索API不能满足您的需要,至少目前不能。其次,使用我描述的方法,Box将返回所有子文件夹的元数据,然后返回所有文件的元数据。您可以根据返回的文件夹数量修改偏移量,避免分页问题。我做了一个测试,结果发现搜索API就是解决方案。但是现在如果你告诉我,在这个时刻,我不能用这个API做我想做的事情,我不能只有一个来自Box API的解决方案。问题是我不能在我的服务器上提供这个。顺便说一句,我将参加一个API发行版,其中Box改进了这种过滤方式。我已经更新了我的答案,以提供一个示例,说明如何通过分页实现您的要求。祝你好运
https://api.box.com/2.0/search?query=pdf&type=file&offset=0&limit=100