В этом руководстве объясняется, как API Google Drive поддерживает несколько способов поиска файлов и папок.
Метод list ресурса files позволяет получить доступ ко всем или некоторым файлам и папкам пользователя Google Диска. Метод list также можно использовать для получения идентификатора fileId ), необходимого для некоторых методов ресурса (например, методов get и ` update ).
Используйте параметр fields.
Если вы хотите указать поля, которые должны быть возвращены в ответе, вы можете задать системный параметр fields с помощью любого метода ресурса files . Если вы опустите параметр fields , сервер вернет набор полей по умолчанию, специфичных для данного метода. Например, метод list возвращает только поля kind , id , name , mimeType и resourceKey для каждого файла. Чтобы вернуть другие поля, см. раздел «Возврат специфических полей» .
Получить файл
Чтобы получить доступ к файлу, используйте метод get ресурса files с параметром `path` ` fileId . Если идентификатор файла неизвестен, вы можете вывести список всех файлов с помощью метода list .
Метод возвращает файл в виде экземпляра ресурса files . Если вы укажете параметр запроса alt=media , то в теле ответа будет содержаться содержимое файла. Чтобы загрузить или экспортировать файл, см. раздел «Загрузка и экспорт файлов» .
Чтобы подтвердить риск загрузки известных вредоносных программ или других вредоносных файлов, установите параметр запроса acknowledgeAbuse в true . Это поле применимо только в том случае, если установлен параметр alt=media , и пользователь является либо владельцем файла, либо организатором общего диска, на котором находится файл.
Найдите все файлы и папки на диске «Мой диск» текущего пользователя.
Используйте метод list без параметров, чтобы получить все файлы и папки.
GET https://www.googleapis.com/drive/v3/files
Найдите определенные файлы или папки в папке «Мой диск» текущего пользователя.
Для поиска определенного набора файлов или папок используйте поле запроса q с методом list , чтобы отфильтровать возвращаемые файлы, комбинируя один или несколько поисковых запросов.
Синтаксис строки запроса состоит из следующих трех частей:
query_term operator values
Где:
query_term— это поисковый запрос или поле, по которому будет производиться поиск.operatorзадает условие для поискового запроса.values— это конкретные значения, которые вы хотите использовать для фильтрации результатов поиска.
Например, следующая строка запроса фильтрует поиск, чтобы возвращать только папки, задавая MIME-тип :
q: mimeType = 'application/vnd.google-apps.folder'
Чтобы просмотреть все поисковые запросы по файлам, см. раздел «Поисковые запросы по конкретным файлам» .
Чтобы просмотреть все операторы запросов, которые можно использовать для построения запроса, см. раздел «Операторы запросов» .
Примеры строк запроса
В таблице ниже приведены примеры некоторых базовых строк запроса. Фактический код может отличаться в зависимости от используемой вами клиентской библиотеки для поиска.
Для корректной работы запроса необходимо также экранировать специальные символы в именах файлов. Например, если имя файла содержит как апостроф ( ' ), так и обратную косую черту ( "\" ), используйте обратную косую черту для их экранирования: name contains 'quinn\'s paper\\essay' .
| Что вы хотите запросить | Пример |
|---|---|
| Файлы с именем "hello" | name = 'hello' |
| Файлы, в названии которых содержатся слова «hello» и «goodbye». | name contains 'hello' and name contains 'goodbye' |
| Файлы, в имени которых отсутствует слово "hello". | not name contains 'hello' |
| Файлы, содержащие текст "важно", находятся в корзине. | fullText contains 'important' and trashed = true |
| Файлы, содержащие слово "hello" | fullText contains 'hello' |
| Файлы, в которых отсутствует слово "hello". | not fullText contains 'hello' |
| Файлы, содержащие точную фразу "hello world" | fullText contains '"hello world"' |
| Файлы, в запросе которых содержится символ "\" (например, "\authors") | fullText contains '\\authors' |
| Файлы, являющиеся папками | mimeType = 'application/vnd.google-apps.folder' |
| Файлы, которые не являются папками. | mimeType != 'application/vnd.google-apps.folder' |
| Файлы, измененные после указанной даты (часовой пояс по умолчанию — UTC). | modifiedTime > '2012-06-04T12:00:00' |
| Файлы изображений или видео, измененные после определенной даты. | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
| Файлы, отмеченные звездочкой | starred = true |
Файлы внутри коллекции (например, идентификатор папки в parents коллекции) | '1234567' in parents |
| Файлы в папке данных приложения в коллекции | 'appDataFolder' in parents |
| Файлы, владельцем которых является пользователь "test@example.org". | 'test@example.org' in owners |
| Файлы, для которых пользователь "test@example.org" имеет права на запись. | 'test@example.org' in writers |
| Файлы, для которых у участников группы "group@example.org" есть права на запись. | 'group@example.org' in writers |
| Файлы, предоставленные авторизованному пользователю, имя которого содержит "hello". | sharedWithMe and name contains 'hello' |
| Файлы с пользовательскими свойствами, видимыми для всех приложений. | properties has { key='mass' and value='1.3kg' } |
| Файлы с пользовательским свойством, доступным только запрашивающему приложению. | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| Файлы, которые не были предоставлены никому или никаким доменам (только частные или предоставлены определенным пользователям или группам). | visibility = 'limited' |
Фильтрация результатов поиска с помощью клиентской библиотеки
Приведённый ниже пример кода демонстрирует, как использовать клиентскую библиотеку для фильтрации результатов поиска по именам и идентификаторам файлов JPEG. В этом примере используется поисковый запрос mimeType для сужения результатов до файлов типа image/jpeg . Также устанавливаются spaces для drive , чтобы ещё больше сузить поиск до пространства Drive . Если nextPageToken возвращает null , результатов больше нет.
Java
Python
Node.js
PHP
Поиск файлов с пользовательскими свойствами.
Для поиска файлов с пользовательскими свойствами используйте поисковый запрос ` properties или ` appProperties , указав ключ и значение. Например, для поиска пользовательского свойства файла, являющегося частным для запрашивающего приложения, с именем additionalID и значением ` 8e8aceg2af2ge72e78 :
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
Для получения дополнительной информации см. раздел «Добавление пользовательских свойств файла» .
Поиск файлов с определенной меткой или значением поля.
Для поиска файлов с определенными метками используйте поисковый запрос labels с конкретным идентификатором метки. Например: 'labels/ LABEL_ID ' in labels . В случае успеха в теле ответа будут содержаться все экземпляры файлов, к которым применена данная метка.
Для поиска файлов без конкретного идентификатора метки: Not 'labels/ LABEL_ID ' in labels .
Вы также можете искать файлы по определенным значениям полей. Например, чтобы найти файлы со значением "текст": labels/ LABEL_ID .text_field_id =' TEXT ' .
Для получения дополнительной информации см. раздел «Поиск файлов с определенной меткой или значением поля» .
Поиск в корпусах
По умолчанию коллекция элементов user задается в параметре запроса corpora при использовании метода list . Для поиска в других коллекциях элементов, например, общих для domain , необходимо явно указать параметр corpora .
Вы можете выполнять поиск по нескольким корпусам в одном запросе; однако, если объединенный корпус слишком велик, API может вернуть неполные результаты. Проверьте поле incompleteSearch в теле ответа. Если оно true , значит, некоторые документы были пропущены. Чтобы решить эту проблему, сузьте corpora , используя либо user , либо drive .
При использовании параметра запроса orderBy в методе list избегайте использования ключа createdTime для запросов к большим коллекциям элементов, поскольку это требует дополнительной обработки и может привести к таймаутам или другим проблемам. Для сортировки по времени в больших коллекциях элементов можно использовать modifiedTime , поскольку он оптимизирован для обработки таких запросов. Например, ?orderBy=modifiedTime .
Если опустить параметр запроса orderBy , порядок сортировки по умолчанию отсутствует, и элементы возвращаются произвольно.
Связанные темы
- Поиск общих дисков
- Поисковые запросы и операторы
- Google Workspace и Google Drive поддерживают типы MIME.
- Роли и права доступа
- Поиск файлов с определенной меткой или значением поля.