2013-07-04 3 views
0

Каков наилучший способ получить все файлы, содержащиеся в папке с помощью Google Drive API (OAuth2)?Списки файлов API Google Диска

Например, с Dropbox, это просто простой запрос к (1 запросу):

https://api.dropbox.com/1/metadata/dropbox/ {folder}

Для Skydrive, то есть:

https://apis.live.net/v5.0/ {folder}

, а затем запрашивая upload_location (2 заявки).

Согласно API Документации Google для Google Drive, можно сделать запрос на

https://www.googleapis.com/drive/v2/files/ {folder}/children

Чтобы получить данные, чтобы data.items, содержащие идентификатор детей. Однако с помощью этого метода, если в папке есть файлы n, для этого требуется сделать n+1 запросов (1 для получения списков элементов и n для каждого элемента).

Я думаю, что делать n+1 запросов для такой основной задачи слишком много. Это то, как разработан API Google Диска, или есть более быстрый метод запроса всех файлов (с достаточным количеством метаданных) внутри папки?

ответ

-1

Я не эксперт, но похоже, что вы описали способ разработки API. Как раз из https://developers.google.com/drive/v2/reference/children/list, похоже, что вы хотите получить список ChildReference, а затем из каждого элемента, в котором вы получите его идентификатор файла, а затем используйте функцию files(). Get (fileID), чтобы получить каждый файл оттуда.

+1

ИМХИ, итерация по списку вещей, чтобы повторно запустить новый вызов API является довольно плохим дизайном. +1 для решения запроса mbonnin выше. – Ronan

3

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

См https://developers.google.com/drive/v2/reference/files/list:

https://www.googleapis.com/drive/v2/files?q='id'+in+parents 

Это возвращает гораздо больше, чем МЕТАДАННЫЕ детей конечную точку

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