Ce guide explique comment l'API Google Drive permet de rechercher des fichiers et des dossiers de plusieurs façons.
Vous pouvez utiliser la méthode list sur la ressource files pour renvoyer tout ou partie des fichiers et dossiers d'un utilisateur Drive. La méthode list peut également être utilisée pour récupérer le fileId requis pour certaines méthodes de ressources (telles que les méthodes get et update).
Utiliser le paramètre "fields"
Si vous souhaitez spécifier les champs à renvoyer dans la réponse, vous pouvez définir le paramètre système fields avec n'importe quelle méthode de la ressource files. Si vous omettez le paramètre fields, le serveur renvoie un ensemble de champs par défaut spécifiques à la méthode. Par exemple, la méthode list ne renvoie que les champs kind, id, name, mimeType et resourceKey pour chaque fichier. Pour renvoyer différents champs, consultez Renvoyer des champs spécifiques.
Obtenir un fichier
Pour obtenir un fichier, utilisez la méthode get sur la ressource files avec le paramètre de chemin d'accès fileId.
Si vous ne connaissez pas l'ID du fichier, vous pouvez lister tous les fichiers à l'aide de la méthode list.
La méthode renvoie le fichier sous la forme d'une instance de ressource files. Si vous fournissez le paramètre de requête alt=media, la réponse inclut le contenu du fichier dans le corps de la réponse. Pour télécharger ou exporter le fichier, consultez Télécharger et exporter des fichiers.
Pour reconnaître le risque de télécharger des logiciels malveillants connus ou d'autres fichiers abusifs, définissez le paramètre de requête acknowledgeAbuse sur true. Ce champ ne s'applique que lorsque le paramètre alt=media est défini et que l'utilisateur est le propriétaire du fichier ou l'organisateur du Drive partagé dans lequel se trouve le fichier.
Rechercher tous les fichiers et dossiers dans le Drive de l'utilisateur actuel
Utilisez la méthode list sans aucun 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 le dossier "Mon Drive" de l'utilisateur actuel
Pour rechercher un ensemble spécifique de fichiers ou de dossiers, utilisez le champ de chaîne de requête q avec la méthode list pour filtrer les fichiers à renvoyer en combinant un ou plusieurs termes de recherche.
La syntaxe de la chaîne de requête contient les trois parties suivantes :
query_term operator values
Où :
query_termcorrespond au terme ou au champ de requête sur lequel effectuer la recherche.operatorspécifie la condition appliquée au terme de requête.valuescorrespond aux valeurs spécifiques que vous souhaitez utiliser pour filtrer les résultats de recherche.
Par exemple, la chaîne de requête suivante filtre la recherche pour ne renvoyer que les dossiers en définissant le type MIME :
q: mimeType = 'application/vnd.google-apps.folder'
Pour afficher tous les termes de requête de fichier, consultez Termes de requête spécifiques aux fichiers.
Pour afficher tous les opérateurs de requête que vous pouvez utiliser pour créer une requête, consultez Opérateurs de requête.
Exemples de chaînes de requête
Le tableau suivant présente quelques exemples de chaînes de requête de base. Le code exact varie 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 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'.
| Critère de recherche | 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 "bonjour" | not name contains 'hello' |
| Fichiers contenant le texte "important" et se trouvant dans la corbeille | fullText contains 'important' and trashed = true |
| Fichiers contenant le mot "bonjour" | fullText contains 'hello' |
| Fichiers ne contenant pas le mot "bonjour" | not fullText contains 'hello' |
| Fichiers contenant l'expression exacte "hello world" | fullText contains '"hello world"' |
| Fichiers dont la requête contient 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 de dossier dans la collection parents) |
'1234567' in parents |
| Fichiers dans un dossier de données d'application d'une collection | 'appDataFolder' in parents |
| Fichiers dont l'utilisateur "test@example.org" est 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 dont le nom contient "bonjour" | 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 à l'application qui en fait la demande | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| Fichiers qui n'ont été partagés avec personne ni aucun domaine (uniquement privés, 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 sur les noms de fichiers et les ID des fichiers JPEG. Cet exemple utilise le terme de requête mimeType pour limiter les résultats aux fichiers de type image/jpeg. Il définit également spaces sur drive pour affiner davantage la recherche à l'espace Drive. Lorsque nextPageToken renvoie null, cela signifie qu'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 properties ou appProperties avec une clé et une valeur. Par exemple, pour rechercher une propriété de fichier personnalisée privée à l'application qui effectue 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écifiques
Pour rechercher des fichiers avec des libellés spécifiques, utilisez le terme de requête 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 fichier auxquelles 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 champ spécifiques. Par exemple, pour rechercher des fichiers avec une valeur de texte : labels/LABEL_ID.text_field_id ='TEXT'.
Pour en savoir plus, consultez Rechercher des fichiers avec un libellé ou une valeur de champ spécifiques.
Rechercher dans les corpus
Par défaut, la collection d'éléments user est définie sur le paramètre de requête corpora lorsque la méthode list est utilisée. Pour rechercher d'autres collections d'éléments, comme celles partagées avec un domain, vous devez définir explicitement le paramètre corpora.
Vous pouvez rechercher plusieurs corpus dans une même requête. Toutefois, si le corpus combiné est trop volumineux, l'API peut renvoyer des résultats incomplets. Vérifiez le champ incompleteSearch dans le corps de la réponse. Si la valeur est true, cela signifie que certains documents ont été omis. Pour résoudre ce problème, affinez le corpora afin d'utiliser user ou drive.
Lorsque vous utilisez le paramètre de requête orderBy sur la méthode list, évitez d'utiliser la clé createdTime pour les requêtes sur les grandes collections d'articles, car cela nécessite un traitement supplémentaire et peut entraîner des délais d'attente ou d'autres problèmes. Pour le tri par heure sur de grandes collections d'éléments, vous pouvez utiliser modifiedTime, car il est optimisé pour gérer ces requêtes.
Par exemple, ?orderBy=modifiedTime.
Si vous omettez le paramètre de requête orderBy, il n'y a pas d'ordre de tri par défaut et les éléments sont renvoyés de manière arbitraire.
Articles associés
- Rechercher des Drive partagés
- Termes de requête et opérateurs 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