Я пытаюсь создать веб-интерфейс для пользователей, чтобы перемещаться по его / ее Диску Google и выбирать один или несколько документов, на которые будет ссылаться позже на веб-сайте из БД. В настоящее время я создаю веб-интерфейс с помощью PHP.
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти одну функцию для получения списка файлов по идентификатору папки.
Я пробовал использовать:
$service->children->listChildren($rootFolderId)
… но это даст только идентификатор файлов файлов в папке (так называемый элемент детского ресурса), что означает, что я должен прокрутить эти файлы и создать вызов для каждого из них, чтобы получить все метаданные Мне нужен мой интерфейс.
К сожалению..
$service->files->list()
.. будет отображать ВСЕ мои файлы без параметров фильтрации по папке.
Я хотел бы знать, есть ли эффективный способ извлечения списка файлов папок с одного вызова на сервер Диска. На самом деле я помню, что смог выполнить эту проверку над старым API Google DOC.
Большое спасибо за Вашу помощь
Теперь можно использовать конечную точку drive.files.list для отображения файлов, принадлежащих определенной папке.
Для этого вы можете использовать параметр ?q=
query следующим образом:
GET https://www.googleapis.com/drive/v2/files?q="'<FOLDER_ID>' in parents"
В PHP это будет
$service->files->list(array('q' => "'<FOLDER_ID>' in parents"));
Будет ли параметр запроса <FOLDER_ID> in parents
списке файлов и / или папок с таким <FOLDER_ID> у родителей?
На мой взгляд, это ожидаемый результат. Я задаю этот вопрос, потому что в приведенном выше ответе читаем:
… для отображения файлов, принадлежащих определенной папке.
и в документации по параметрам поиска объясняется:
Это находит все дочерние папки для родительской папки с идентификатором 1234567.
Я добавлю, что список «Только папки» можно вернуть, добавив что-то вроде
and mimeType='application/vnd.google-apps.folder'
к строке запроса.
Нет необходимости использовать поисковые запросы. Просто позвоните в GET https://www.googleapis.com/drive/v2/files/ {folderId} / children
https://developers.google.com/drive/v2/reference/children/list
Его легко сейчас, не волнуйтесь. Если вы хотите получить все файлы и папку из определенного FOLDER, просто скопируйте и вставьте этот код в свой проект, и он будет извлекать все файлы и папку из определенной папки. Примечание. У вас должен быть свой собственный идентификатор папки
List<File> result = new ArrayList<File>(); Files.List request = null; try { request = mService.files().list();//plz replace your FOLDER ID in below line FileList files = request.setQ("'"+MyFoler_Id+"' in parents and trashed=false"").execute(); result.addAll(files.getItems()); request.setPageToken(files.getNextPageToken()); } catch (IOException e) { System.out.println("An error occurred: " + e); request.setPageToken(null); }
// Распечатаем список файлов и папок, которые мы получили.
for(File f:result) { System.out.println("My recvd data "+f.getTitle()); }