Questa guida spiega come l'API Google Drive supporta diversi modi per cercare file e cartelle.
Puoi utilizzare il list metodo sulla
files risorsa per restituire tutti o alcuni dei
file e delle cartelle di un utente di Drive. Il metodo list può essere utilizzato anche per recuperare il fileId richiesto per alcuni metodi delle risorse (come il metodo get e il metodo update).
Utilizzare il parametro fields
Se vuoi specificare i campi da restituire nella risposta, puoi impostare il
fields parametro
di sistema
con qualsiasi metodo della ris3/} risorsa.files Se ometti il parametro fields, il server restituisce un insieme predefinito di campi specifici per il metodo. Ad esempio, il
list metodo restituisce solo i campi kind, id,
name, mimeType e resourceKey per ogni file. Per restituire campi diversi, consulta Restituire campi specifici.
Recuperare un file
Per recuperare un file, utilizza il get metodo sulla
files risorsa con il fileId parametro di percorso.
Se non conosci l'ID del file, puoi elencare tutti i file utilizzando il list
metodo.
Il metodo restituisce il file come istanza di una risorsa files. Se fornisci il parametro di query alt=media, la risposta include i contenuti del file nel corpo della risposta. Per scaricare o esportare il file, consulta Scaricare ed esportare
file.
Per riconoscere il rischio di scaricare malware noti o altri
illeciti file, imposta il
acknowledgeAbuse parametro di query su true. Questo campo è applicabile solo quando il parametro alt=media è impostato e l'utente è il proprietario del file o un organizzatore del Drive condiviso in cui si trova il file.
Cercare tutti i file e le cartelle in Il mio Drive dell'utente corrente
Utilizza il metodo list senza parametri per restituire tutti i file e le cartelle.
GET https://www.googleapis.com/drive/v3/files
Cercare file o cartelle specifici in Il mio Drive dell'utente corrente
Per cercare un insieme specifico di file o cartelle, utilizza il campo della stringa di query q field
con il list metodo per filtrare i file da
restituire combinando uno o più termini di ricerca.
La sintassi della stringa di query contiene le seguenti tre parti:
query_term operator values
Dove:
query_termè il termine o il campo di query su cui eseguire la ricerca.operatorspecifica la condizione per il termine di query.valuessono i valori specifici che vuoi utilizzare per filtrare i risultati di ricerca.
Ad esempio, la seguente stringa di query filtra la ricerca in modo da restituire solo le cartelle impostando il tipo MIME:
q: mimeType = 'application/vnd.google-apps.folder'
Per visualizzare tutti i termini di query dei file, consulta Termini di query specifici per i file.
Per visualizzare tutti gli operatori di query che puoi utilizzare per creare una query, consulta Operatori di query.
Esempi di stringhe di query
La tabella seguente elenca esempi di alcune stringhe di query di base. Il codice effettivo varia a seconda della libreria client che utilizzi per la ricerca.
Devi anche eseguire l'escape dei caratteri speciali nei nomi dei file per assicurarti che la query funzioni correttamente. Ad esempio, se un nome file contiene sia un apostrofo
(') sia una barra rovesciata ("\"), utilizza una barra rovesciata per eseguirne l'escape: name
contains 'quinn\'s paper\\essay'.
| Elemento su cui vuoi eseguire la query | Esempio |
|---|---|
| File con il nome "hello" | name = 'hello' |
| File con un nome che contiene le parole "hello" e "goodbye" | name contains 'hello' and name contains 'goodbye' |
| File con un nome che non contiene la parola "hello" | not name contains 'hello' |
| File che contengono il testo "important" e nel cestino | fullText contains 'important' and trashed = true |
| File che contengono la parola "hello" | fullText contains 'hello' |
| File che non contengono la parola "hello" | not fullText contains 'hello' |
| File che contengono la frase esatta "hello world" | fullText contains '"hello world"' |
| File con una query che contiene il carattere "\" (ad esempio, "\authors") | fullText contains '\\authors' |
| File che sono cartelle | mimeType = 'application/vnd.google-apps.folder' |
| File che non sono cartelle | mimeType != 'application/vnd.google-apps.folder' |
| File modificati dopo una data specifica (il fuso orario predefinito è UTC) | modifiedTime > '2012-06-04T12:00:00' |
| File di immagini o video modificati dopo una data specifica | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
| File aggiunti a Speciali | starred = true |
File all'interno di una raccolta (ad esempio, l'ID della cartella nella raccolta parents) |
'1234567' in parents |
| File in una cartella dei dati dell'applicazione in una raccolta | 'appDataFolder' in parents |
| File di cui l'utente "test@example.org" è il proprietario | 'test@example.org' in owners |
| File per cui l'utente "test@example.org" ha l'autorizzazione di scrittura | 'test@example.org' in writers |
| File per cui i membri del gruppo "group@example.org" hanno l'autorizzazione di scrittura | 'group@example.org' in writers |
| File condivisi con l'utente autorizzato con "hello" nel nome | sharedWithMe and name contains 'hello' |
| File con una proprietà di file personalizzata visibile a tutte le app | properties has { key='mass' and value='1.3kg' } |
| File con una proprietà di file personalizzata privata per l'app che effettua la richiesta | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| File che non sono stati condivisi con nessuno o con nessun dominio (solo privati o condivisi con utenti o gruppi specifici) | visibility = 'limited' |
Filtrare i risultati di ricerca con una libreria client
Il seguente esempio di codice mostra come utilizzare una libreria client per filtrare i risultati di ricerca in base ai nomi e agli ID dei file JPEG. Questo esempio utilizza il termine di query mimeType per limitare i risultati ai file di tipo image/jpeg. Imposta anche
spaces su drive per limitare ulteriormente la ricerca allo spazio Drive
. Quando nextPageToken restituisce null, non ci sono altri risultati.
Java
Python
Node.js
PHP
Cercare file con una proprietà di file personalizzata
Per cercare file con una proprietà di file personalizzata, utilizza il termine di query di ricerca properties o appProperties con una chiave e un valore. Ad esempio, per cercare una proprietà di file personalizzata privata per l'app che effettua la richiesta chiamata additionalID con un valore di 8e8aceg2af2ge72e78:
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
Per ulteriori informazioni, consulta Aggiungere proprietà di file personalizzate.
Cercare file con un'etichetta o un valore di campo specifico
Per cercare file con etichette specifiche, utilizza il termine di query di ricerca labels con un ID etichetta specifico. Ad esempio: 'labels/LABEL_ID' in
labels. In caso di esito positivo, il corpo della risposta contiene tutte le istanze di file in cui è applicata l'etichetta.
Per cercare file senza un ID etichetta specifico: Not
'labels/LABEL_ID' in labels.
Puoi anche cercare file in base a valori di campo specifici. Ad esempio, per
cercare file con un valore di testo:
labels/LABEL_ID.text_field_id ='TEXT'.
Per ulteriori informazioni, consulta Cercare file con un'etichetta o un valore di campo specifico.
Cercare i corpora
Per impostazione predefinita, la raccolta di elementi user è impostata sul parametro di query corpora
quando viene utilizzato il metodo list. Per cercare altre raccolte di elementi, ad esempio quelle condivise con un domain, devi impostare esplicitamente il parametro corpora.
Puoi cercare più corpora in una singola query; tuttavia, se i corpora combinati sono troppo grandi, l'API potrebbe restituire risultati incompleti. Controlla il
incompleteSearch
campo nel corpo della risposta. Se è true, alcuni documenti sono stati omessi. Per risolvere il problema, limita il parametro corpora in modo da utilizzare user o drive.
Quando utilizzi il
orderBy parametro di query
nel metodo list, evita di utilizzare la chiave createdTime per le query su
raccolte di elementi di grandi dimensioni, in quanto richiede un'elaborazione aggiuntiva e potrebbe causare timeout o altri problemi. Per l'ordinamento in base al tempo su raccolte di elementi di grandi dimensioni, puoi utilizzare modifiedTime, in quanto è ottimizzato per gestire queste query.
Ad esempio, ?orderBy=modifiedTime.
Se ometti il parametro di query orderBy, non esiste un ordinamento predefinito e gli elementi vengono restituiti in modo arbitrario.
Argomenti correlati
- Cercare Drive condivisi
- Termini e operatori di query di ricerca
- Tipi MIME supportati per Google Workspace e Google Drive
- Ruoli e autorizzazioni
- Cercare file con un'etichetta o un valore di campo specifico