L'API Google Drive propose plusieurs façons de rechercher des fichiers et des dossiers.
Vous pouvez utiliser la méthode files.list
pour renvoyer tous les fichiers et dossiers d'un utilisateur Drive, ou seulement certains. La méthode files.list
peut également être utilisée pour récupérer le fileId
requis pour certaines méthodes de ressources (telles que files.get
et files.update
).
Rechercher tous les fichiers et dossiers dans le dossier Mon Drive de l'utilisateur actuel
Utilisez la méthode files.list
sans paramètre pour renvoyer tous les fichiers et dossiers.
GET https://www.googleapis.com/drive/v3/files
Rechercher des fichiers ou des dossiers spécifiques dans Mon Drive de l'utilisateur actuel
Pour rechercher un ensemble spécifique de fichiers ou de dossiers, utilisez le champ q
de la chaîne de requête avec la méthode files.list
pour filtrer les fichiers à renvoyer en combinant un ou plusieurs termes de recherche.
Une chaîne de requête se compose des trois parties suivantes:
query_term operator values
Où :
query_term
est le terme ou le champ de requête à rechercher.operator
spécifie la condition du terme de requête.values
correspond aux valeurs spécifiques que vous souhaitez utiliser pour filtrer les résultats de recherche.
Pour afficher les termes et les opérateurs de requête que vous pouvez utiliser pour filtrer des fichiers et des dossiers, consultez Termes et opérateurs de requête de recherche.
Par exemple, la chaîne de requête suivante filtre la recherche pour n'afficher que les dossiers en définissant le type MIME :
q: mimeType = 'application/vnd.google-apps.folder'
Pour en savoir plus sur les types MIME, consultez Types MIME compatibles avec Google Workspace et Google Drive.
Exemples de chaînes de requête
Le tableau suivant présente des exemples de chaînes de requêtes de base. Le code réel diffère selon la bibliothèque cliente que vous utilisez pour votre recherche.
Vous devez également échapper les caractères spéciaux dans les noms de fichiers pour vous assurer que la requête fonctionne correctement. Par exemple, si un nom de fichier contient à la fois une apostrophe ('
) et une barre oblique inverse ("\"
), utilisez une barre oblique inverse pour les échapper : name
contains 'quinn\'s paper\\essay'
.
Éléments interrogés | Exemple |
---|---|
Fichiers portant le nom "hello" | name = 'hello' |
Fichiers dont le nom contient les mots "bonjour" et "au revoir" | name contains 'hello' and name contains 'goodbye' |
Fichiers dont le nom ne contient pas le mot "hello" | not name contains 'hello' |
Fichiers contenant le texte "important" et situés dans la corbeille | fullText contains 'important' and trashed = true |
Fichiers contenant le mot "hello" | fullText contains 'hello' |
Fichiers qui ne contiennent pas le mot "hello" | not fullText contains 'hello' |
Fichiers contenant la phrase exacte "hello world" | fullText contains '"hello world"' |
Fichiers contenant une requête contenant le caractère "\" (par exemple, "\authors") | fullText contains '\\authors' |
Fichiers qui sont des dossiers | mimeType = 'application/vnd.google-apps.folder' |
Fichiers qui ne sont pas des dossiers | mimeType != 'application/vnd.google-apps.folder' |
Fichiers modifiés après une date donnée (le fuseau horaire par défaut est UTC) | modifiedTime > '2012-06-04T12:00:00' |
Fichiers image ou vidéo modifiés après une date spécifique | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
Fichiers ajoutés aux favoris | starred = true |
Fichiers d'une collection (par exemple, l'ID du dossier dans la collection parents ) |
'1234567' in parents |
Fichiers d'un dossier de données d'application dans une collection | 'appDataFolder' in parents |
Fichiers dont l'utilisateur "test@example.org" est le propriétaire | 'test@example.org' in owners |
Fichiers pour lesquels l'utilisateur "test@example.org" dispose d'une autorisation d'écriture | 'test@example.org' in writers |
Fichiers pour lesquels les membres du groupe "group@example.org" disposent d'une autorisation d'écriture | 'group@example.org' in writers |
Fichiers partagés avec l'utilisateur autorisé et contenant le mot "hello" dans le nom | sharedWithMe and name contains 'hello' |
Fichiers avec une propriété de fichier personnalisée visible par toutes les applications | properties has { key='mass' and value='1.3kg' } |
Fichiers avec une propriété de fichier personnalisée privée pour l'application à l'origine de la requête | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
Fichiers qui n'ont été partagés avec personne ni avec aucun domaine (privés uniquement, ou partagés avec des utilisateurs ou des groupes spécifiques) | visibility = 'limited' |
Filtrer les résultats de recherche avec une bibliothèque cliente
L'exemple de code suivant montre comment utiliser une bibliothèque cliente pour filtrer les résultats de recherche en fonction des noms et des ID de fichiers JPEG. Cet exemple utilise le terme de requête mimeType
pour affiner les résultats aux fichiers de type image/jpeg
. Il définit également spaces
sur drive
pour affiner davantage la recherche dans l'espace Drive. Lorsque nextPageToken
renvoie null
, il n'y a plus de résultats.
Java
Python
Node.js
PHP
Rechercher des fichiers avec une propriété de fichier personnalisée
Pour rechercher des fichiers avec une propriété de fichier personnalisée, utilisez le terme de requête de recherche properties
ou appProperties
avec une clé et une valeur. Par exemple, pour rechercher une propriété de fichier personnalisée privée pour l'application à l'origine de la requête appelée additionalID
avec une valeur de 8e8aceg2af2ge72e78
:
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
Pour en savoir plus, consultez Ajouter des propriétés de fichier personnalisées.
Rechercher des fichiers avec un libellé ou une valeur de champ spécifique
Pour rechercher des fichiers avec des libellés spécifiques, utilisez le terme de requête de recherche labels
avec un ID de libellé spécifique. Exemple : 'labels/LABEL_ID' in
labels
. Si la requête aboutit, le corps de la réponse contient toutes les instances de fichiers où le libellé est appliqué.
Pour rechercher des fichiers sans ID de libellé spécifique : Not
'labels/LABEL_ID' in labels
.
Vous pouvez également rechercher des fichiers en fonction de valeurs de champs spécifiques. Par exemple, pour rechercher des fichiers avec une valeur textuelle : labels/LABEL_ID.text_field_id ='TEXT'
.
Pour en savoir plus, consultez Rechercher des fichiers avec un libellé ou une valeur de champ spécifique.
Rechercher dans les corpus
Les recherches qui appellent files.list
utilisent la corpora
de user
par défaut. Pour rechercher d'autres corpus, tels que des fichiers partagés avec un domain
, définissez le paramètre corpora
.
Plusieurs corpus peuvent être recherchés dans une même requête, mais des résultats incomplets peuvent être renvoyés si les corpus combinés sont trop volumineux. Si incompleteSearch
est true
dans le corps de la réponse, tous les documents n'ont pas été renvoyés. Dans ce cas, vous devez affiner votre requête en choisissant un autre corpus, tel que user
ou drive
.
Articles associés
- Rechercher des Drive partagés
- Termes et opérateurs de requête de recherche
- Types MIME compatibles avec Google Workspace et Google Drive
- Rôles et autorisations
- Rechercher des fichiers avec un libellé ou une valeur de champ spécifique