Search Box.com搜索API以检索确定文件夹中的所有文件

Search Box.com搜索API以检索确定文件夹中的所有文件,search,box-api,Search,Box Api,我正在搜索一种方法来获取特定文件夹的所有文件 但是我在网上找不到足够的信息 我考虑这样的事情:(我还假设用access_令牌设置一个自定义头) 这种方法不起作用,我认为查询不接受正则表达式 有什么想法吗 PS:一个真实的用例将有助于理解这个问题: 我的文件夹: folderOne: | |_file1.jpg | |_file2.doc | |_folder1 | |_file3.jpg | |_folder2 | |_file4.pdf 对于搜索请求,我希望只获得fil

我正在搜索一种方法来获取特定文件夹的所有文件

但是我在网上找不到足够的信息

我考虑这样的事情:(我还假设用access_令牌设置一个自定义头)

这种方法不起作用,我认为查询不接受正则表达式

有什么想法吗


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