В этом руководстве объясняется, как 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
- Роли и разрешения
- Поиск файлов с определенной меткой или значением поля