Die Google Drive API unterstützt verschiedene Arten von Download- und Exportaktionen, die in der folgenden Tabelle aufgeführt sind:
| Downloadaktionen |
|
||||
| Exportaktionen |
|
Bevor Sie Dateiinhalte herunterladen oder exportieren, prüfen Sie, ob Nutzer die
Datei mit dem capabilities.canDownload Feld in der files Ressource herunterladen können.
Beschreibungen der hier erwähnten Dateitypen, einschließlich Blob- und Google Workspace-Dateien, finden Sie unter Dateitypen.
Im Rest dieses Dokuments finden Sie eine detaillierte Anleitung zum Ausführen dieser Arten von Download- und Exportaktionen.
Blob-Dateiinhalte herunterladen
Wenn Sie eine in Drive gespeicherte Blob-Datei herunterladen möchten, verwenden Sie die files.get Methode mit der ID der herunterzuladenden Datei und dem
alt=media URL-Parameter. Der URL-Parameter alt=media teilt dem Server mit, dass ein Download von Inhalten als alternatives Antwortformat angefordert wird.
Der alt=media URL-Parameter ist ein Systemparameter, der für alle Google REST APIs verfügbar ist. Wenn Sie eine Drive API-Clientbibliothek verwenden, müssen Sie diesen Parameter nicht explizit festlegen, da die Methode der Clientbibliothek den URL-Parameter alt=media zur 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 Zugriff auf die API gewährt.
- FILE_NAME: der Name der Ausgabedatei.
Dateidownloads, die über Ihre 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 autorisiert, die Dateiinhalte herunterzuladen.
In den Codebeispielen der Clientbibliothek 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 der Berechtigung owner (für Dateien in „Meine Ablage“) oder
organizer (für Dateien in geteilten Ablagen) können Downloads einschränken
über das
DownloadRestrictionsMetadata
Objekt. Weitere Informationen finden Sie unter Nutzer daran hindern, Ihre Datei herunterzuladen, zu drucken oder
zu kopieren.
Dateien, die als missbräuchlich
(z. B. schädliche Software) identifiziert wurden, können nur vom Eigentümer der Datei heruntergeladen werden.
Außerdem muss der Abfrageparameter get acknowledgeAbuse=true enthalten sein, um anzugeben, dass der Nutzer das Risiko des Herunterladens potenziell unerwünschter Software oder anderer missbräuchlicher Dateien akzeptiert hat. Ihre Anwendung sollte den Nutzer interaktiv warnen, bevor dieser Abfrageparameter verwendet wird.
Teilweiser Download
Beim teilweisen Download wird nur ein bestimmter Teil einer Datei heruntergeladen. Sie
können den Teil der Datei, den Sie herunterladen möchten, mit einem Byte
bereich im
Range Header angeben. Beispiel:
Range: bytes=500-999
Blob-Dateiinhalte in einer früheren Version herunterladen
Sie können nur Blob-Dateiinhaltsversionen herunterladen, die als „Niemals löschen“ gekennzeichnet sind. Wenn Sie eine Version herunterladen möchten, legen Sie sie zuerst auf „Niemals löschen“ fest. Weitere Informationen finden Sie unter Versionen angeben, die nicht automatisch gelöscht werden sollen.
Wenn Sie den Inhalt von Blob-Dateien in einer früheren Version herunterladen möchten, verwenden Sie die
revisions.get Methode mit der ID der
herunterzuladenden Datei, der ID der Version und dem alt=media URL-Parameter. Der URL-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 optionalen Abfrageparameter acknowledgeAbuse und den Header Range. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit 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 Version.
- ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.
- FILE_NAME: der Name der Ausgabedatei.
Blob-Dateiinhalte in einem Browser herunterladen
Wenn Sie den Inhalt von Blob-Dateien, die in Drive gespeichert sind, in einem
Browser und nicht über die API herunterladen möchten, verwenden Sie das webContentLink Feld der files Ressource. Wenn der Nutzer Downloadzugriff auf die Datei hat, wird ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als anklickbaren 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 Zugriff auf die API gewährt.
Blob-Dateiinhalte mit Vorgängen mit langer Laufzeit herunterladen
Wenn Sie den Inhalt von Blob-Dateien mit Vorgängen mit langer Laufzeit (Long-Running Operations, LRO) herunterladen möchten, verwenden Sie
die files.download Methode mit der ID der
herunterzuladenden Datei. Optional können Sie die ID der Version festlegen.
Dies ist die einzige Möglichkeit, Google Vids-Dateien herunterzuladen. Wenn Sie versuchen,
Google Vids-Dateien zu exportieren, wird der
fileNotExportable Fehler angezeigt.
Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit
verwalten.
curl
Der folgende curl-Befehl initiiert einen LRO und gibt eine JSON-Antwort zurück. 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 Inhalts-URL abzurufen. 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 Zugriff auf die API gewährt.
Google Workspace-Dokumentinhalte exportieren
Wenn Sie Google Workspace-Dokumentinhalte als Byte exportieren möchten, verwenden Sie die files.export-Methode mit der ID der zu exportierenden Datei und
dem richtigen MIME-Typ. Der exportierte Inhalt ist 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 Zugriff auf die API gewährt.
- FILE_NAME: der Name der Ausgabedatei.
In den Codebeispielen der 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 MIME-Typen für den Export, die für die einzelnen Google Workspace
Dokumente unterstützt werden, finden Sie unter MIME-Typen für den Export von Google Workspace-Dokumenten.
Google Workspace-Dokumentinhalte in einem Browser exportieren
Wenn Sie Google Workspace-Dokumentinhalte in einem Browser exportieren möchten, verwenden Sie das
exportLinks Feld der
files Ressource. Je nach Dokumenttyp wird für jeden verfügbaren MIME-Typ ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu einer URL weiterleiten oder sie als anklickbaren 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 Zugriff auf die API gewährt.
Google Workspace-Dokumentinhalte in einer früheren Version in einem Browser exportieren
Wenn Sie Google Workspace-Dokumentinhalte in einer früheren Version in einem
Browser exportieren möchten, verwenden Sie die revisions.get Methode mit
der ID der herunterzuladenden Datei und der ID der Version, um einen Export
Link zu generieren, über den Sie den Download ausführen können. Wenn der Nutzer Downloadzugriff auf die Datei hat, wird ein Link zum Herunterladen der Datei und ihrer Inhalte zurückgegeben. Sie können einen Nutzer entweder zu dieser URL weiterleiten oder sie als anklickbaren 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 Version.
- ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.
Google Workspace-Dokumentinhalte mit Vorgängen mit langer Laufzeit exportieren
Wenn Sie Google Workspace-Dokumentinhalte mit Vorgängen mit langer Laufzeit
(Long-Running Operations, LRO) exportieren möchten, verwenden Sie die files.download Methode mit
der ID der herunterzuladenden Datei und der ID der Version. Weitere Informationen finden Sie unter Vorgänge mit langer Laufzeit verwalten.
curl
Der folgende curl-Befehl initiiert einen LRO und gibt eine JSON-Antwort zurück. 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 Inhalts-URL abzurufen. 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 Version.
- ACCESS_TOKEN: das Zugriffstoken, das Zugriff auf die API gewährt.