В этом руководстве объясняется, как API Google Drive поддерживает несколько способов поиска файлов и папок.
Метод list ресурса files можно использовать для возврата всех или некоторых файлов и папок пользователя Диска. Метод list также можно использовать для получения идентификатора fileId , необходимого для некоторых методов ресурса (например, get и update ).
Используйте параметр fields
Если вы хотите указать поля, возвращаемые в ответе, вы можете задать системный параметр fields с помощью любого метода ресурса files . Если параметр fields опущен, сервер вернет набор полей по умолчанию, специфичный для данного метода. Например, метод list возвращает только поля kind , id , name , mimeType и resourceKey для каждого файла. Чтобы вернуть различные поля, см. раздел Возврат определённых полей .
Получить файл
Чтобы получить файл, используйте метод get ресурса files с параметром 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' .
| Что вы хотите запросить | Пример |
|---|---|
| Файлы с именем "привет" | 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' |
| Файлы, содержащие точную фразу «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 |
| Файлы, предоставленные авторизованному пользователю с «привет» в имени | 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 , результаты больше не возвращаются.
Ява
Питон
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 ' .
Дополнительные сведения см. в разделе Поиск файлов с определенной меткой или значением поля .
Поиск в корпусах
Поисковые запросы, вызывающие метод list , по умолчанию используют corpora user . Для поиска в других корпусах, например, в файлах, доступных для общего доступа к domain , установите параметр corpora .
В одном запросе можно выполнить поиск по нескольким корпусам, однако, если объединённый корпус слишком большой, могут быть возвращены неполные результаты. Если в теле ответа incompleteSearch равно true , это означает, что не все документы были возвращены. В этом случае следует сузить запрос, выбрав другой корпус, например, user или drive .
Похожие темы
- Поиск общих дисков
- Условия и операторы поискового запроса
- Поддерживаемые типы MIME для Google Workspace и Google Drive
- Роли и разрешения
- Поиск файлов с определенной меткой или значением поля