L'API Google Drive supporta diversi tipi di azioni di download ed esportazione, come elencato nella tabella seguente:
| Azioni di download |
|
||||
| Azioni di esportazione |
|
Prima di scaricare o esportare i contenuti dei file, verifica che gli utenti possano scaricare il
file utilizzando il capabilities.canDownload campo nella files risorsa.
Per le descrizioni dei tipi di file menzionati qui, inclusi i file blob e di Google Workspace, vedi Tipi di file.
Il resto di questa guida fornisce istruzioni dettagliate per eseguire questi tipi di azioni di download ed esportazione.
Scaricare i contenuti dei file blob
Per scaricare un file blob archiviato su Drive, utilizza il files.get metodo con l'ID del file da scaricare e il
alt=media parametro URL. Il parametro URL alt=media indica al server che viene richiesto il download dei contenuti come formato di risposta alternativo.
Il parametro URL alt=media è un parametro
di sistema disponibile
in tutte le API REST di Google. Se utilizzi una libreria client per l'API Drive, non devi impostare esplicitamente questo parametro.
Il seguente esempio di codice mostra come utilizzare il metodo files.get per scaricare un file con le librerie client dell'API Drive.
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
Questo esempio di codice utilizza un metodo della libreria che aggiunge il parametro URL alt=media alla richiesta HTTP sottostante.
I download di file avviati dalla tua app devono essere autorizzati con un ambito che consenta l'accesso in lettura ai contenuti dei file. Ad esempio, un'app che utilizza l'ambito drive.readonly.metadata non è autorizzata a scaricare i contenuti dei file.
Questo esempio di codice utilizza l'ambito file "drive" limitato che consente agli utenti di visualizzare e gestire tutti i file di Drive. Per saperne di più sugli ambiti di
Drive, consulta Scegliere gli ambiti di API Google Drive
scopes.
Gli utenti con autorizzazioni owner (per i file di Il mio Drive) o
organizer (per i file dei Drive condivisi) possono limitare il download
tramite l'
DownloadRestrictionsMetadata
oggetto. Per saperne di più, consulta Impedire agli utenti di scaricare, stampare o
copiare il file.
I file identificati come illeciti
(ad esempio software dannoso) possono essere scaricati solo dal proprietario del file.
Inoltre, deve essere incluso il parametro di query get acknowledgeAbuse=true per indicare che l'utente ha riconosciuto il rischio di scaricare software potenzialmente indesiderato o altri file illeciti. La tua applicazione deve avvisare l'utente in modo interattivo prima di utilizzare questo parametro di query.
Download parziale
Il download parziale prevede il download solo di una parte specificata di un file. Puoi
specificare la parte del file che vuoi scaricare utilizzando un intervallo
di byte con l'
Range intestazione. Ad esempio:
Range: bytes=500-999
Scaricare i contenuti dei file blob in una versione precedente
Puoi scaricare solo le revisioni dei contenuti dei file blob contrassegnate come "Conserva per sempre". Se vuoi scaricare una revisione, impostala prima su "Conserva per sempre". Per saperne di più, consulta Specificare le revisioni da salvare dall'eliminazione automatica.
Per scaricare i contenuti dei file blob in una versione precedente, utilizza il
revisions.get metodo con l'ID del
file da scaricare, l'ID della revisione e il alt=media parametro URL. Il parametro URL alt=media indica al server che viene richiesto il download dei contenuti come formato di risposta alternativo. Analogamente a files.get, il metodo revisions.get accetta anche il parametro di query facoltativo acknowledgeAbuse e l'intestazione Range. Per saperne di più, consulta Gestire
le operazioni a lunga esecuzione.
Il protocollo di richiesta è mostrato qui.
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaScaricare i contenuti dei file blob in un browser
Per scaricare i contenuti dei file blob archiviati su Drive in un
browser, anziché tramite l'API, utilizza il webContentLink campo della risorsa files. Se l'utente ha accesso al download del file, viene restituito un link per scaricare il file e i relativi contenuti. Puoi reindirizzare un utente a questo URL o offrirlo come link cliccabile.
Scaricare i contenuti dei file blob durante le operazioni a lunga esecuzione
Per scaricare i contenuti dei file blob durante le operazioni a lunga esecuzione, utilizza il
files.download metodo con l'ID del
file da scaricare. Facoltativamente, puoi impostare l'ID della revisione.
Questo è l'unico modo per scaricare i file di Google Vids. Se tenti di esportare
i file di Google Vids, ricevi un
fileNotExportable errore.
Per saperne di più, consulta Gestire le operazioni a lunga esecuzione.
Esportare i contenuti dei documenti di Google Workspace
Per esportare i contenuti dei byte dei documenti di Google Workspace, utilizza il metodo files.export con l'ID del file da esportare e
il tipo MIME corretto. I contenuti esportati sono limitati a 10 MB.
Il seguente esempio di codice mostra come utilizzare il metodo files.export per esportare un documento di Google Workspace in formato PDF utilizzando le librerie client dell'API Drive:
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
Questo esempio di codice utilizza l'ambito drive limitato che consente agli utenti di visualizzare e gestire tutti i file di Drive. Per saperne di più sugli ambiti di
Drive, consulta Scegliere gli ambiti di API Google Drive
scopes.
L'esempio di codice dichiara anche il tipo MIME di esportazione come application/pdf. Per un
elenco completo di tutti i tipi MIME di esportazione supportati per ogni documento di Google Workspace, consulta Tipi MIME di esportazione per i documenti di Google Workspace.
Esportare i contenuti dei documenti di Google Workspace in un browser
Per esportare i contenuti dei documenti di Google Workspace in un browser, utilizza il
exportLinks campo della files risorsa. A seconda del tipo di documento, viene restituito un link per scaricare il file e i relativi contenuti per ogni tipo MIME disponibile.
Puoi reindirizzare un utente a un URL o offrirlo come link cliccabile.
Esportare i contenuti dei documenti di Google Workspace in una versione precedente in un browser
Per esportare i contenuti dei documenti di Google Workspace in una versione precedente in un
browser, utilizza il metodo revisions.get con
l'ID del file da scaricare e l'ID della revisione per generare un link di esportazione
da cui puoi eseguire il download. Se l'utente ha accesso al download del file, viene restituito un link per scaricare il file e i relativi contenuti. Puoi reindirizzare un utente a questo URL o offrirlo come link cliccabile.
Esportare i contenuti dei documenti di Google Workspace durante le operazioni a lunga esecuzione
Per esportare i contenuti dei documenti di Google Workspace durante le operazioni a lunga esecuzione,
utilizza il metodo files.download con l'ID
del file da scaricare e l'ID della revisione. Per saperne di più, consulta
Gestire le operazioni a lunga esecuzione.