API Google Диска поддерживает несколько способов поиска файлов и папок.
Вы можете использовать метод files.list
для возврата всех или некоторых файлов и папок пользователя Диска. Метод files.list
также можно использовать для получения fileId
необходимого для некоторых методов ресурсов (таких как files.get
и files.update
).
Поиск всех файлов и папок на «Моем диске» текущего пользователя.
Используйте метод files.list
без каких-либо параметров, чтобы вернуть все файлы и папки.
GET https://www.googleapis.com/drive/v3/files
Поиск определенных файлов или папок на «Моем диске» текущего пользователя.
Для поиска определенного набора файлов или папок используйте поле строки запроса q
с методом files.list
для фильтрации возвращаемых файлов путем объединения одного или нескольких условий поиска.
Строка запроса состоит из следующих трех частей:
query_term operator values
Где:
query_term
— это термин запроса или поле для поиска.operator
определяет условие для термина запроса.values
— это конкретные значения, которые вы хотите использовать для фильтрации результатов поиска.
Чтобы просмотреть условия запроса и операторы, которые можно использовать для фильтрации файлов и папок, см. Условия и операторы поисковых запросов .
Например, следующая строка запроса фильтрует поиск и возвращает только папки, устанавливая тип MIME:
q: mimeType = 'application/vnd.google-apps.folder'
Дополнительную информацию о типах MIME см. в разделе Типы MIME, поддерживаемые Google Workspace и Google Диском .
Примеры строк запроса
В следующей таблице приведены примеры некоторых основных строк запроса. Фактический код различается в зависимости от клиентской библиотеки, которую вы используете для поиска.
Вы также должны избегать специальных символов в именах файлов, чтобы убедиться, что запрос работает правильно. Например, если имя файла содержит как апостроф ( '
), так и обратную косую черту ( "\"
), используйте обратную косую черту, чтобы экранировать их: name contains 'quinn\'s paper\\essay'
.
Что вы хотите запросить | Пример |
---|---|
Файлы с именем «привет» | name = 'hello' |
Файлы с именем, содержащим слова «привет» и «до свидания» | name contains 'hello' and name contains 'goodbye' |
Файлы с именем, не содержащим слова «привет» | not name contains 'hello' |
Файлы, содержащие текст «важно» и в корзину | fullText contains 'important' and trashed = true |
Файлы, содержащие слово «привет» | fullText contains 'hello' |
Файлы, в которых нет слова «привет» | not fullText contains 'hello' |
Файлы, содержащие точную фразу «привет, мир» | 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 |
Файлы, которыми поделился авторизованный пользователь с «привет» в имени. | 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
, чтобы еще больше сузить поиск до места на Диске . Когда nextPageToken
возвращает null
, результатов больше нет.
Ява
Питон
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 '
.
Дополнительные сведения см. в разделе Поиск файлов с определенной меткой или значением поля .
Поиск по корпусу
Поиски, вызывающие files.list
по умолчанию используют corpora
user
. Для поиска других корпусов, например файлов, совместно используемых с domain
, установите параметр corpora
.
В рамках одного запроса можно выполнять поиск по нескольким корпусам, однако могут быть возвращены неполные результаты, если объединенные корпуса слишком велики. Если incompleteSearch
в теле ответа имеет true
, то не все документы были возвращены. В этом случае вам следует сузить свой запрос, выбрав другую корпорацию, например user
или drive
.
Связанные темы
- Поиск общих дисков
- Условия и операторы поисковых запросов
- Типы MIME, поддерживаемые Google Workspace и Google Drive
- Роли и разрешения
- Поиск файлов с определенной меткой или значением поля