API Google Drive поддерживает несколько способов поиска файлов и папок.
Метод files.list
можно использовать для возврата всех или некоторых файлов и папок пользователя Диска. Его также можно использовать для получения идентификатора fileId
files.list
необходимого для некоторых методов ресурсов (например, 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 Drive .
Примеры строк запроса
В следующей таблице приведены примеры некоторых базовых строк запроса. Фактический код различается в зависимости от клиентской библиотеки, используемой для поиска.
Также необходимо экранировать специальные символы в именах файлов, чтобы обеспечить корректную работу запроса. Например, если имя файла содержит как апостроф ( '
), так и обратную косую черту ( "\"
), используйте обратную косую черту для их экранирования: 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 |
Файлы, владельцем которых является пользователь «[email protected]» | '[email protected]' in owners |
Файлы, для которых пользователь «[email protected]» имеет разрешение на запись | '[email protected]' in writers |
Файлы, для которых члены группы «[email protected]» имеют разрешение на запись | '[email protected]' 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 '
.
Дополнительные сведения см. в разделе Поиск файлов с определенной меткой или значением поля .
Поиск в корпусах
Поисковые запросы, вызывающие files.list
, по умолчанию используют corpora
user
. Для поиска в других корпусах, например, в файлах, предоставленных domain
, установите параметр corpora
.
В одном запросе можно выполнить поиск по нескольким корпусам, однако, если объединённый корпус слишком большой, могут быть возвращены неполные результаты. Если в теле ответа incompleteSearch
равно true
, это означает, что не все документы были возвращены. В этом случае следует сузить запрос, выбрав другой корпус, например, user
или drive
.
Похожие темы
- Поиск общих дисков
- Условия и операторы поискового запроса
- Поддерживаемые типы MIME для Google Workspace и Google Drive
- Роли и разрешения
- Поиск файлов с определенной меткой или значением поля