In diesem Leitfaden wird beschrieben, wie Sie mit der Google Drive API Dateien in Google Drive erstellen und verwalten.
Datei erstellen
Wenn Sie in Drive eine Datei mit Inhalten (Medien) erstellen möchten, müssen Sie Dateidaten hochladen. Sie können die Metadaten und den Inhalt einer Datei zusammen in einer einzigen Anfrage hochladen (mehrteiliger Upload) oder nur Medien (einfacher Upload). Weitere Informationen finden Sie unter Dateidaten hochladen.
Wenn Sie eine Datei ohne Metadaten oder Inhalt erstellen möchten, verwenden Sie die create Methode für die files Ressource ohne Parameter.
Wenn Sie die Datei erstellen, gibt die Methode eine files-Ressource zurück. Die Datei erhält die kind-Angabe drive.file, eine id, den name „Unbenannt“ und den mimeType application/octet-stream. The
uploadType
ist als erforderlich gekennzeichnet, hat aber standardmäßig den Wert media. Sie müssen ihn also nicht
angeben.
Weitere Informationen zu den Dateilimits in Drive finden Sie unter Datei- und Ordnerlimits.
In den folgenden Codebeispielen wird gezeigt, wie Sie eine Datei ohne Metadaten oder Inhalt erstellen:
Node.js
/**
* Create an empty file.
* @return {string} The created file's ID.
*/
async function createEmptyFile() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.create({});
console.log('File ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN'
Ersetzen Sie Folgendes:
- ACCESS_TOKEN: Das OAuth 2.0-Token Ihrer App.
Parameter „fields“ verwenden
Wenn Sie die Felder angeben möchten, die in der Antwort zurückgegeben werden sollen, können Sie den
fields System
parameter
mit einer beliebigen Methode der files Ressource festlegen. Wenn Sie den Parameter fields weglassen, gibt der Server eine Standardgruppe von Feldern zurück, die für die Methode spezifisch sind. Die Methode
list gibt beispielsweise nur die Felder kind, id,
name, mimeType und resourceKey für jede Datei zurück. Informationen zum Zurückgeben anderer
Felder finden Sie unter Bestimmte Felder zurückgeben.
Dateieigentümerschaft
Wenn eine Datei mit der Drive API erstellt wird, hängt die Eigentümerschaft von den Authentifizierungsanmeldedaten ab, die von der App verwendet werden:
Nutzerkonto (OAuth 2.0): Wenn die Anwendung im Namen eines Nutzers authentifiziert wird, wird dieser Nutzer zum Dateieigentümer. Die Datei befindet sich dann im Ordner „Meine Ablage“ oder in einem angegebenen Ordner. Sie verbraucht das Speicherkontingent des Nutzers.
Dienstkonto: Wenn die Anwendung mit einem Dienstkonto authentifiziert wird, ist das Dienstkonto der Dateieigentümer. Die Datei befindet sich dann im dedizierten Drive-Speicherplatz des Dienstkontos. Dateien werden nicht in anderen Drive-Speicherplätzen angezeigt, es sei denn, sie wurden explizit freigegeben. Wenn das Dienstkonto gelöscht wird, werden alle Dateien, deren Eigentümer es ist, sofort gelöscht.
Wenn Sie ein Dienstkonto verwenden, aber möchten, dass ein bestimmtes Nutzerkonto Eigentümer einer Datei ist, verwenden Sie die domainweite Delegation. So kann das Dienstkonto die Identität eines Nutzers annehmen und in seinem Namen Dateien erstellen. Weitere Informationen finden Sie unter Domainweite Befugnisse an das Dienstkonto delegieren.
Weitere Informationen zu Dateiberechtigungen finden Sie unter Dateien, Ordner und Ablagen freigeben.
IDs für Ihre Dateien generieren
Mit der generateIds Methode für die
files Ressource können Sie eindeutige Datei
IDs vorab generieren, die beim Erstellen oder Kopieren von Dateien und Ordnern in
Drive verwendet werden können. Das kann nützlich sein, wenn Sie die Datei-IDs über Ihre App steuern möchten, anstatt sie automatisch von Drive zuweisen zu lassen.
Mit dem
count
Abfrageparameter können Sie die Anzahl der generierten IDs festlegen. Wenn count nicht festgelegt ist, werden standardmäßig 10 zurückgegeben. Die maximale Anzahl der IDs, die Sie anfordern können, ist auf 1.000 begrenzt.
Sie können auch den
space angeben, in
dem die IDs verwendet werden können, und den
type der
Elemente, für die die IDs verwendet werden können.
Sobald eine ID generiert wurde, kann sie über das Feld id an die Methode create oder copy übergeben werden. So wird sichergestellt, dass die erstellte oder kopierte Datei die vorgegebene ID verwendet.
Wenn die Datei erfolgreich erstellt oder kopiert wurde, geben nachfolgende Wiederholungen den HTTP-Statuscode 409
Conflict zurück und es werden keine doppelten Dateien erstellt.
Vorab generierte IDs werden für die Erstellung von
Google Workspace-Dateien nicht unterstützt, mit Ausnahme der application/vnd.google-apps.drive-sdk
und application/vnd.google-apps.folder MIME
Typen. Ebenso werden Uploads, die auf eine Konvertierung in ein Google Workspace-Dateiformat verweisen, nicht unterstützt.
In den folgenden Codebeispielen wird gezeigt, wie Sie eindeutige Datei-IDs vorab generieren:
Node.js
/**
* Pre-generate unique file IDs.
*/
async function generateFileIds() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.generateIds({
count: 10,
space: 'drive'
});
const ids = response.data.ids;
console.log('Generated IDs:');
for (const id of ids) {
console.log(id);
}
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
curl
curl 'https://www.googleapis.com/drive/v3/files/generateIds?count=10&space=drive' \
-H 'Authorization: Bearer ACCESS_TOKEN'
Ersetzen Sie Folgendes:
- ACCESS_TOKEN: Das OAuth 2.0-Token Ihrer App.
Dateien nur mit Metadaten erstellen
Dateien nur mit Metadaten enthalten keinen Inhalt. Metadaten sind Daten (z. B. name, mimeType und createdTime), die die Datei beschreiben. Felder wie name sind nutzerunabhängig und für alle Nutzer gleich, während Felder wie viewedByMeTime nutzerspezifische Werte enthalten.
Ein Beispiel für eine Datei nur mit Metadaten ist ein Ordner mit dem MIME-Typ application/vnd.google-apps.folder. Weitere Informationen finden Sie unter Ordner erstellen und
füllen. Ein weiteres Beispiel ist eine Verknüpfung zu einer anderen Datei in Drive mit dem MIME-Typ application/vnd.google-apps.shortcut. Weitere Informationen finden Sie unter Verknüpfung zu einer Drive-Datei erstellen.
Thumbnails verwalten
Thumbnails helfen Nutzern, Drive-Dateien zu identifizieren. Drive kann automatisch Thumbnails für gängige Dateitypen generieren. Sie können aber auch ein von Ihrer App generiertes Thumbnail bereitstellen. Weitere Informationen finden Sie unter Thumbnails hochladen.
Vorhandene Datei kopieren
Wenn Sie eine Datei kopieren und alle angeforderten Aktualisierungen anwenden möchten, verwenden Sie die copy Methode für die files Ressource. Verwenden Sie die list Methode, um die zu kopierende
fileId zu finden.
Sie können Aktualisierungen mit Patch-Semantik anwenden. Das bedeutet, dass Sie teilweise Änderungen an einer Ressource vornehmen können. Sie müssen die Felder, die Sie ändern möchten, explizit in Ihrer Anfrage festlegen. Alle Felder, die nicht in der Anfrage enthalten sind, behalten ihre vorhandenen Werte bei. Weitere Informationen finden Sie unter Mit Teilressourcen arbeiten.
Sie können die Datei-ID der kopierten Datei mit der generateIds Methode voreinstellen. Weitere Informationen finden Sie unter
IDs für Ihre Dateien generieren.
Sie müssen einen geeigneten Drive API Bereich verwenden, um den Aufruf zu autorisieren. Weitere Informationen zu Drive-Bereichen finden Sie unter Google Drive API-Bereiche auswählen.
In den folgenden Codebeispielen wird gezeigt, wie Sie eine Datei kopieren und ihren Namen aktualisieren:
Node.js
/**
* Copy an existing file.
* @return {string} The copied file's ID.
*/
async function copyFile() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.copy({
fileId: 'FILE_ID',
requestBody: {
name: 'FILE_COPY_NAME'
}
});
console.log('Copied file ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der zu kopierenden Datei.
- FILE_COPY_NAME: Der Name der neuen Datei.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/copy' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "FILE_COPY_NAME"
}'
Ersetzen Sie Folgendes:
- FILE_ID: Die ID der zu kopierenden Datei.
- ACCESS_TOKEN: Das OAuth 2.0-Token Ihrer App.
- FILE_COPY_NAME: Der Name der neuen Datei.
Kommentare kopieren
Wenn Sie Kommentare und Vorschläge kopieren möchten, wenn Sie eine Google Docs-,
Google Sheets- oder Google Präsentationen-Datei kopieren, legen Sie den copyComments Abfrage
parameter auf true fest. Drive kopiert nur offene Kommentare (nicht gelöste Kommentare). Bei anderen Dateitypen ignoriert Drive diesen Parameter.
Weitere Informationen zu Berechtigungen, Kommentarzuschreibung und Zugriffs überlegungen finden Sie unter Einschränkungen und Überlegungen.
Einschränkungen und Überlegungen
Beachten Sie beim Kopieren von Dateien die folgenden Einschränkungen und Überlegungen:
Berechtigungen:
- Das
DownloadRestrictionsMetadataObjekt derfilesRessource bestimmt wer die Datei kopieren kann. Weitere Informationen finden Sie unter Verhindern, dass Nutzer Ihre Datei herunterladen, drucken oder kopieren. - Das
capabilities.canCopyFeld der Ressource bestimmt, ob der Nutzer eine Datei kopieren kann. Weitere Informationen finden Sie unter Informationen zu Dateifunktionen. - Wenn Sie Kommentare kopieren möchten, müssen Sie die Berechtigung haben, Kommentare in der Quelldatei zu lesen. Wenn Sie keine Berechtigung zum Lesen von Kommentaren haben und
copyCommentsauftruesetzen, wird der Kopiervorgang trotzdem ausgeführt, aber Kommentare werden nicht kopiert. - Durch das Kopieren von Kommentaren erhalten die ursprünglichen Kommentatoren keinen Zugriff auf die neue Datei. Die Access Control Lists (ACLs) der neuen Datei sind unabhängig von den ACLs der Quelldatei.
- Der Nutzer, der die Kopie erstellt hat, ist Eigentümer der kopierten Datei. Keine anderen Freigabeeinstellungen aus der Quelldatei werden repliziert. Wenn die Kopie in einem freigegebenen Ordner erstellt wird, übernimmt sie die Berechtigungen dieses Ordners.
- Die Eigentümerschaft einer kopierten Datei kann sich ändern und die Kopie übernimmt möglicherweise nicht die Freigabeeinstellungen der Originaldatei. Diese Einstellungen müssen möglicherweise zurückgesetzt werden.
- Das
Dateiverwaltung:
- Einige Dateien, z. B. Verknüpfungen von Drittanbietern, können nie kopiert werden.
- Sie können eine Datei nur in einen übergeordneten Ordner kopieren. Die Angabe mehrerer übergeordneter Ordner wird nicht unterstützt. Wenn das
parentsFeld nicht angegeben ist, übernimmt die Datei alle erkennbaren übergeordneten Ordner aus der Quelldatei. - Obwohl ein Ordner ein Dateityp ist, können Sie keinen Ordner kopieren.
Erstellen Sie stattdessen einen Zielordner und legen Sie das Feld
parentsder vorhandenen Dateien auf den Zielordner fest. Anschließend können Sie den ursprünglichen Quellordner löschen. - Wenn kein neuer Dateiname angegeben wird, erstellt die Methode
copyeine Datei mit demselben Namen wie das Original. - Eine übermäßige Verwendung von
copykann dazu führen, dass die Kontingentlimits der Drive API überschritten werden. Weitere Informationen finden Sie unter Nutzungs limits.
Weitere Informationen
Hier sind einige nächste Schritte, die Sie ausprobieren können:
Informationen zum Hochladen von Dateidaten beim Erstellen oder Aktualisieren einer Datei finden Sie unter Dateidaten hochladen.
Informationen zum Erstellen einer Datei in einem bestimmten Ordner finden Sie unter Datei in einem bestimmten Ordner erstellen.
Informationen zum Verschieben von Dateien finden Sie unter Dateien zwischen Ordnern verschieben.
Informationen zum Arbeiten mit Dateimetadaten finden Sie unter Dateimetadaten verwalten.
Informationen zum Löschen einer Datei finden Sie unter Dateien und Ordner in den Papierkorb verschieben oder löschen.