2014-06-09 3 views
4

Я ищу способ получить все файлы определенной папки.Box.com Search API для извлечения всех файлов в определенной папке

Но я не могу найти достаточные сведения в official documentation

Я думаю о чем-то вроде этого: (я полагаю, также установить пользовательский заголовок с access_token)

https://api.box.com/2.0/search?query=* 

Таким образом Безразлично» t, и я думаю, что запрос не принимает регулярное выражение ...

Любая идея?


PS: Настоящий UseCase поможет понять этот вопрос:

моя папка:

folderOne: 
| 
|_file1.jpg 
| 
|_file2.doc 
| 
|_folder1 
| |_file3.jpg 
| |_folder2 
| 
|_file4.pdf 

с запросом поиска я ожидаю получить только file1.jpg, file2.doc и file4.pdf.

ответ

5

Вы можете легко выполнить это, запросив содержимое папки и затем фильтруя клиентскую сторону для элементов file.

curl https://api.box.com/2.0/folders/FOLDER_ID/items \ 
-H "Authorization: Bearer ACCESS_TOKEN" 

Это возвращает коллекцию элементов, из которых вы можете выбрать те, чьи type является file.

{ 
    "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" 
    } 
    ] 
} 

Pagination

Box вернет все метаданные папки перед любой файл метаданных. Вы можете подсчитать эти папки, чтобы определить соответствующее смещение для пейджинга только для файлов. Например, если ваша папка 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=... 
+0

Моя цель пагинация ... Тогда, если я добавляю в этот предел запроса и смещение я получаю сбой пагинацию где у меня могут быть «пустые» страницы, когда смещение имеет только папку ... – RikyTres

+0

Это обходное решение хорошо в теории, но не является приемлемым ответом на этот вопрос ...;) – RikyTres

+1

Две вещи: во-первых, API поиска не " т делать то, что вы хотите, по крайней мере, на данный момент. Во-вторых, используя описанный мной метод, Box вернет метаданные для всех подпапок, а затем все файлы. Вы можете изменить смещение на основе количества возвращенных папок и избежать проблем с разбивкой по страницам. –

Смежные вопросы