Die Google Drive API unterstützt verschiedene Arten von Download- und Exportvorgängen, die in der folgenden Tabelle aufgeführt sind:
| Download-Aktionen |
|
||||
| Exportaktionen |
|
Bevor Sie Dateiinhalte herunterladen oder exportieren, prüfen Sie, ob Nutzer die Datei über das Feld capabilities.canDownload in der Ressource files herunterladen können.
Beschreibungen der hier erwähnten Dateitypen, einschließlich Blob- und Google Workspace-Dateien, finden Sie unter Dateitypen.
Im restlichen Teil dieses Dokuments finden Sie eine detaillierte Anleitung zum Ausführen dieser Arten von Download- und Exportvorgängen.
Blob-Dateiinhalt herunterladen
Wenn Sie eine in Drive gespeicherte BLOB-Datei herunterladen möchten, verwenden Sie die Methode files.get mit der ID der herunterzuladenden Datei und dem alt-Systemparameter.
Der Parameter alt=media teilt dem Server mit, dass ein Download von Inhalten als alternatives Antwortformat angefordert wird.
Der Systemparameter alt ist in allen Google REST APIs verfügbar. Wenn Sie eine Drive API-Clientbibliothek verwenden, müssen Sie diesen Parameter nicht explizit festlegen, da die Clientbibliotheksmethode den Parameter alt=media der zugrunde liegenden HTTP-Anfrage hinzufügt.
Die folgenden Codebeispiele zeigen, wie Sie die Methode files.get verwenden, um eine Datei herunterzuladen:
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
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
- FILE_NAME: Der Name der Ausgabedatei.
Dateidownloads, die von Ihrer App gestartet werden, müssen mit einem Bereich autorisiert werden, der Lesezugriff auf den Dateiinhalt ermöglicht. Eine App, die den Bereich drive.readonly.metadata verwendet, ist beispielsweise nicht berechtigt, die Dateiinhalte herunterzuladen.
In den Codebeispielen für Clientbibliotheken wird der eingeschränkte Dateibereich drive verwendet, mit dem Nutzer alle Ihre Drive-Dateien ansehen und verwalten können. Weitere Informationen zu Drive-Bereichen finden Sie unter Google Drive API-Bereiche auswählen.
Nutzer mit owner-Berechtigungen (für Dateien in „Meine Ablage“) oder organizer-Berechtigungen (für Dateien in geteilten Ablagen) können das Herunterladen über das DownloadRestrictionsMetadata-Objekt einschränken. Weitere Informationen finden Sie unter Herunterladen, Drucken oder Kopieren von Dateien verhindern.
Dateien, die als missbräuchlich (z. B. schädliche Software) eingestuft werden, können nur vom Dateieigentümer heruntergeladen werden.
Außerdem muss der Abfrageparameter acknowledgeAbuse auf true gesetzt werden, um anzugeben, dass der Nutzer das Risiko des Herunterladens potenziell unerwünschter Software oder anderer missbräuchlicher Dateien zur Kenntnis genommen hat. Ihre Anwendung sollte den Nutzer interaktiv warnen, bevor dieser Abfrageparameter verwendet wird.
Teilweiser Download
Beim partiellen Download wird nur ein bestimmter Teil einer Datei heruntergeladen. Sie können den Teil der Datei, den Sie herunterladen möchten, mit einem Bytebereich im Header Range angeben. Beispiel:
Range: bytes=500-999
Blob-Dateiinhalt in einer früheren Version herunterladen
Wenn Sie den Inhalt von BLOB-Dateien in einer früheren Version herunterladen möchten, verwenden Sie die Methode revisions.get mit der ID der herunterzuladenden Datei, der ID der Version und dem alt-Systemparameter.
Der Parameter alt=media teilt dem Server mit, dass ein Download von Inhalten als alternatives Antwortformat angefordert wird. Ähnlich wie bei files.get akzeptiert die Methode revisions.get auch den Abfrageparameter acknowledgeAbuse und den Header Range.
Sie können nur Blob-Dateiinhaltsrevisionen herunterladen, die als „Niemals löschen“ gekennzeichnet sind. Wenn Sie eine Version herunterladen möchten, müssen Sie sie zuerst auf „Niemals löschen“ setzen. Weitere Informationen finden Sie unter Revisionen angeben, die nicht automatisch gelöscht werden sollen.
Weitere Informationen zum Herunterladen einer Überarbeitung finden Sie unter Vorgänge mit langer Ausführungszeit verwalten.
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- REVISION_ID: Die ID der herunterzuladenden Überarbeitung.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
- FILE_NAME: Der Name der Ausgabedatei.
Blob-Dateiinhalt in einem Browser herunterladen
Wenn Sie den Inhalt von Blob-Dateien, die in Drive gespeichert sind, in einem Browser anstatt über die API herunterladen möchten, verwenden Sie das Feld webContentLink der Ressource files. Wenn der Nutzer Downloadzugriff auf die Datei hat, wird ein Link zum Herunterladen der Datei und ihres Inhalts zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als klickbaren Link anbieten.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Ersetzen Sie Folgendes:
- FILE_ID: die ID der Datei, für die der Downloadlink abgerufen werden soll.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
Blob-Dateiinhalte mit lang andauernden Vorgängen herunterladen
Wenn Sie den Inhalt von Blob-Dateien mit Vorgängen mit langer Ausführungszeit (Long-Running Operations, LRO) herunterladen möchten, verwenden Sie die Methode files.download mit der ID der herunterzuladenden Datei. Optional können Sie die ID der Überarbeitung festlegen.
Dies ist die einzige Möglichkeit, Google Vids-Dateien herunterzuladen. Wenn Sie versuchen, Google Vids-Dateien zu exportieren, wird der Fehler fileNotExportable angezeigt.
Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.
curl
Mit dem folgenden curl-Befehl wird ein LRO initiiert und eine JSON-Antwort zurückgegeben. Wenn Sie die Datei herunterladen oder diesen LRO abfragen möchten, müssen Sie eine weitere Anfrage mit der zurückgegebenen ID senden, um die Content-URL zu erhalten. Anschließend können Sie eine letzte curl-Anfrage an diese URL senden, um die Datei herunterzuladen. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=video/mp4" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
Inhalte von Google Workspace-Dokumenten exportieren
Wenn Sie den Byte-Inhalt eines Google Workspace-Dokuments exportieren möchten, verwenden Sie die Methode files.export mit der ID der zu exportierenden Datei und dem richtigen MIME-Typ. Die exportierten Inhalte sind auf 10 MB begrenzt.
Die folgenden Codebeispiele zeigen, wie Sie die Methode files.export verwenden, um ein Google Workspace-Dokument im PDF-Format zu exportieren:
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
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=application/pdf" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME.pdf"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
- FILE_NAME: Der Name der Ausgabedatei.
In den Codebeispielen für die Clientbibliothek wird der eingeschränkte Bereich drive verwendet, mit dem Nutzer alle Ihre Drive-Dateien ansehen und verwalten können. Weitere Informationen zu Drive-Bereichen finden Sie unter Google Drive API-Bereiche auswählen.
In den Codebeispielen wird der MIME-Typ für den Export auch als application/pdf deklariert. Eine vollständige Liste aller Export-MIME-Typen, die für die einzelnen Google Workspace-Dokumente unterstützt werden, finden Sie unter Export-MIME-Typen für Google Workspace-Dokumente.
Google Workspace-Dokumentinhalte in einem Browser exportieren
Wenn Sie Google Workspace-Dokumentinhalte in einem Browser exportieren möchten, verwenden Sie das Feld exportLinks der Ressource files. Je nach Dokumenttyp wird für jeden verfügbaren MIME-Typ ein Link zum Herunterladen der Datei und ihres Inhalts zurückgegeben. Sie können einen Nutzer entweder zu einer URL weiterleiten oder sie als klickbaren Link anbieten.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Ersetzen Sie Folgendes:
- FILE_ID: die ID der Datei, für die der Downloadlink abgerufen werden soll.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
Inhalte von Google Workspace-Dokumenten in einer früheren Version in einem Browser exportieren
Wenn Sie den Inhalt eines Google Workspace-Dokuments in einer früheren Version in einem Browser exportieren möchten, verwenden Sie die Methode revisions.get mit der ID der herunterzuladenden Datei und der ID der Revision, um einen Exportlink zu generieren, über den Sie den Download ausführen können. Wenn der Nutzer Zugriff auf den Download der Datei hat, wird ein Link zum Herunterladen der Datei und ihres Inhalts zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als klickbaren Link anbieten.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- REVISION_ID: Die ID der herunterzuladenden Überarbeitung.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.
Google Workspace-Dokumentinhalte mit zeitaufwendigen Vorgängen exportieren
Wenn Sie Google Workspace-Dokumentinhalte mit LROs (Long-Running Operations) exportieren möchten, verwenden Sie die Methode files.download mit der ID der herunterzuladenden Datei und der ID der Revision. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.
curl
Mit dem folgenden curl-Befehl wird ein LRO initiiert und eine JSON-Antwort zurückgegeben. Wenn Sie die Datei herunterladen oder diesen LRO abfragen möchten, müssen Sie eine weitere Anfrage mit der zurückgegebenen ID senden, um die Content-URL zu erhalten. Anschließend können Sie eine letzte curl-Anfrage an diese URL senden, um die Datei herunterzuladen. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=MIME_TYPE&revisionId=REVISION_ID" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der herunterzuladenden Datei.
- MIME_TYPE: Der MIME-Typ, in den exportiert werden soll.
- REVISION_ID: Die ID der herunterzuladenden Überarbeitung.
- ACCESS_TOKEN: Das Zugriffstoken, das den Zugriff auf die API gewährt.