Die Google Drive API bietet verschiedene Möglichkeiten, die Änderung von Dateien zu verhindern, darunter die Einschränkung von Dateiinhalten und das Deaktivieren der Option zum Herunterladen, Drucken oder Kopieren von Dateien.
Dateien mit Google Drive-Inhaltsbeschränkungen schreibschützen
Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um zu verhindern, dass Nutzer Folgendes tun:
- Den Titel ändern
- Inhalte bearbeiten
- Eine Überarbeitung hochladen
- Kommentare hinzufügen oder bearbeiten
Eine Inhaltsbeschränkung ist keine Zugriffsbeschränkung. Nutzer können den Inhalt der Datei zwar nicht ändern, andere Vorgänge sind jedoch weiterhin zulässig, je nach ihrer Zugriffsebene. Ein Nutzer mit Bearbeitungszugriff kann beispielsweise ein Element verschieben oder die Freigabeeinstellungen ändern.
Wenn ein Nutzer einer Datei in Google Drive eine Inhaltsbeschränkung hinzufügen oder entfernen möchte, muss er die entsprechenden permissions haben. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit der capabilities.canModifyEditorContentRestriction muss ihm role=writer zugewiesen sein. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit einer ownerRestricted-Inhaltsbeschränkung muss er der Eigentümer der Datei sein oder role=organizer haben. Wenn Nutzer ein Element mit einer Inhaltsbeschränkung ansehen möchten, müssen sie role=reader oder höher haben. Eine vollständige Liste der Rollen finden Sie unter Rollen und
Berechtigungen. Informationen zum Aktualisieren der Berechtigungen für eine Datei finden Sie unter
Berechtigungen aktualisieren.
Sie können das boolesche Feld contentRestrictions.readOnly für die Ressource files verwenden, um eine Inhalts
beschränkung festzulegen. Beachten Sie, dass das Festlegen einer Inhaltsbeschränkung für ein Element die vorhandene überschreibt.
Szenarien für Inhaltsbeschränkungen
Eine Inhaltsbeschränkung für ein Google Drive-Element signalisiert Nutzern, dass die Inhalte nicht geändert werden sollten. Das kann folgende Gründe haben:
- Die Arbeit an einem Dokument für die Zusammenarbeit während Überprüfungs- oder Auditzeiträumen pausieren
- Ein Element auf einen endgültigen Status setzen, z. B. „Genehmigt“
- Änderungen während einer vertraulichen Besprechung verhindern
- Externe Änderungen für Workflows verbieten, die von automatisierten Systemen verarbeitet werden
- Änderungen durch Google Apps Script und Google Workspace-Add-ons einschränken
- Versehentliche Änderungen an einem Dokument vermeiden
Inhaltsbeschränkungen können zwar bei der Verwaltung von Inhalten helfen, sie sollen aber nicht verhindern, dass Nutzer mit ausreichenden Berechtigungen weiterhin an einem Element arbeiten. Außerdem sind sie keine Möglichkeit, einen unveränderlichen Datensatz zu erstellen. Google Drive-Inhaltsbeschränkungen sind veränderlich. Eine Inhaltsbeschränkung für ein Element garantiert also nicht, dass sich das Element nie ändert.
Dateien mit Inhaltsbeschränkungen verwalten
Google Docs, Google Sheets und Google Präsentationen sowie alle anderen Dateien können Inhaltsbeschränkungen enthalten.
Eine Inhaltsbeschränkung für ein Element verhindert Änderungen am Titel und Inhalt, einschließlich:
- Kommentare und Vorschläge (in Google Docs, Google Sheets, Google Präsentationen und Binärdateien)
- Überarbeitungen einer Binärdatei
- Text und Formatierung in Google Docs
- Text oder Formeln in Google Sheets, ein Google Sheets-Layout und Instanzen in Google Sheets
- Alle Inhalte in Google Präsentationen sowie die Reihenfolge und Anzahl der Folien
Bestimmte Dateitypen können keine Inhaltsbeschränkung enthalten. Einige Beispiele:
- Google Formulare
- Google Sites
- Google Zeichnungen
- Verknüpfungen und Verknüpfungen von Drittanbietern. Weitere Informationen finden Sie unter Verknüpfungsdatei zu von Ihrer App gespeicherten Inhalten erstellen und Verknüpfung zu einer Google Drive-Datei erstellen.
Inhaltsbeschränkung hinzufügen
Wenn Sie eine Inhaltsbeschränkung für eine Datei hinzufügen möchten, verwenden Sie die
files.update Methode und setzen Sie das
contentRestrictions.readOnly Feld auf true. Fügen Sie optional einen reason hinzu, warum Sie die Einschränkung hinzufügen, z. B. „Abgeschlossener Vertrag“. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung hinzufügen:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set a content restriction on a file.
* @return{obj} updated file
**/
async function addContentRestriction() {
// 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});
const contentRestriction = {
'readOnly': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, wird der Inhalt der Datei eingeschränkt und neben dem Dateinamen wird in der Google Drive-Benutzeroberfläche (UI) ein Schlosssymbol () angezeigt. Die Datei ist jetzt schreibgeschützt.
Inhaltsbeschränkung entfernen
Wenn Sie eine Inhaltsbeschränkung für eine Datei entfernen möchten, verwenden Sie die Methode files.update und setzen Sie das Feld contentRestrictions.readOnly auf false. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung entfernen:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(false));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': False}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Remove a content restriction on a file.
* @return{obj} updated file
**/
async function removeContentRestriction() {
// 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});
const contentRestriction = {
'readOnly': False,
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, wird die Inhaltsbeschränkung für die Datei entfernt.
Sie können auch die Google Drive-Benutzeroberfläche verwenden, um eine Inhaltsbeschränkung zu entfernen und die Bearbeitung von Inhalten zuzulassen (vorausgesetzt, Sie haben die entsprechenden Berechtigungen). Dazu haben Sie zwei Möglichkeiten:
Klicken Sie in Google Drive mit der rechten Maustaste auf die Datei mit einer Inhaltsbeschränkung und klicken Sie auf Entsperren .
Abbildung 2. Inhaltsbeschränkung für eine Datei in einer Google Drive-Dateiliste entfernen. Öffnen Sie die Datei mit einer Inhaltsbeschränkung und klicken Sie auf (Sperrmodus) > Datei entsperren.
Abbildung 3. Inhaltsbeschränkung für eine Datei in einem Dokument entfernen.
Auf Inhaltsbeschränkungen prüfen
Wenn Sie auf eine Inhaltsbeschränkung prüfen möchten, verwenden Sie die
files.get Methode mit dem
contentRestrictions zurückgegebenen Feld. Das folgende Codebeispiel zeigt, wie Sie den Status einer Inhaltsbeschränkung prüfen:
Java
File response = driveService.files().get("FILE_ID").setFields("contentRestrictions").execute();
Python
response = drive_service.files().get(fileId="FILE_ID", fields = "contentRestrictions").execute();
Node.js
/**
* Get content restrictions on a file.
* @return{obj} updated file
**/
async function fetchContentRestrictions() {
// 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.get({
fileId: 'FILE_ID',
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie prüfen möchten.
Wenn Sie den Beispielcode ausführen, gibt die Methode eine ContentRestriction-Ressource zurück, falls vorhanden.
Inhaltsbeschränkung hinzufügen, die nur vom Eigentümer der Datei geändert werden kann
Wenn Sie eine Inhaltsbeschränkung für eine Datei hinzufügen möchten, sodass nur Eigentümer der Datei den Mechanismus aktivieren oder deaktivieren können,
verwenden Sie die Methode files.update und setzen Sie das boolesche Feld
contentRestrictions.ownerRestricted auf true. Das folgende Codebeispiel zeigt, wie Sie eine Inhaltsbeschränkung hinzufügen, die nur für Eigentümer der Datei gilt:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setOwnerRestricted(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'ownerRestricted': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set an owner restricted content restriction on a file.
* @return{obj} updated file
**/
async function addOwnerRestrictedContentRestriction() {
// 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});
const contentRestriction = {
'readOnly': True,
'ownerRestricted': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
Ersetzen Sie FILE_ID durch die fileId der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, wird der Inhalt der Datei eingeschränkt und nur Eigentümer der Datei können die Einschränkung entfernen. Wenn Sie der Eigentümer der Datei sind, wird neben dem Dateinamen in der Google Drive-Benutzeroberfläche (UI) ein aktives Schlosssymbol () angezeigt. Wenn Sie nicht der Eigentümer sind, ist das Schlosssymbol ausgegraut.
Wenn Sie das ownerRestricted Flag entfernen möchten, verwenden Sie die files.update Methode und setzen Sie das
contentRestrictions.ownerRestricted Feld auf false.
Funktionen für Inhaltsbeschränkungen
Eine files-Ressource enthält eine Sammlung boolescher
capabilities-Felder, die angeben, ob eine Aktion für eine
Datei ausgeführt werden kann.
Inhaltsbeschränkungen enthalten die folgenden capabilities:
capabilities.canModifyEditorContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltsbeschränkunghinzufügen oder ändern kann.capabilities.canModifyOwnerContentRestriction: Gibt an, ob der aktuelle Nutzer eine Inhaltsbeschränkung für den Eigentümerhinzufügen oder ändern kann.capabilities.canRemoveContentRestriction: Gibt an, ob der aktuelle Nutzer die angewendete Inhaltsbeschränkung entfernen kann (falls vorhanden).
Weitere Informationen finden Sie unter Informationen zu Dateifunktionen.
Ein Beispiel für das Abrufen von Dateien capabilities finden Sie unter Dateifunktionen abrufen.
Verhindern, dass Nutzer Ihre Datei herunterladen, drucken oder kopieren
Sie können einschränken, wie Nutzer Dateien in Google Drive, Google Docs, Google Sheets und Google Präsentationen herunterladen, drucken und kopieren können.
Prüfen Sie das
capabilities.canChangeItemDownloadRestriction boolesche Feld, um festzustellen, ob der Nutzer vom Eigentümer oder Organisator angewendete Download
einschränkungen für eine Datei ändern kann. Wenn capabilities.canChangeItemDownloadRestriction auf true gesetzt ist, können Downloadeinschränkungen auf die Datei angewendet werden. Weitere Informationen finden Sie unter Informationen zu Dateifunktionen.
Wenn Sie Downloadeinschränkungen auf eine Datei anwenden möchten, legen Sie das downloadRestrictions Feld mit der
files.update Methode fest. Sie können das Feld
mit dem
DownloadRestrictionsMetadata
Objekt festlegen.
Das Objekt DownloadRestrictionsMetadata hat zwei Felder: itemDownloadRestriction und effectiveDownloadRestrictionWithContext. Beide Felder sind lesbar, aber nur itemDownloadRestriction kann festgelegt werden. Das
itemDownloadRestriction Feld gibt ein DownloadRestriction Objekt zurück. Das Objekt DownloadRestriction hat zwei separate boolesche Felder: restrictedForReaders und restrictedForWriters.
Wenn Sie das Feld itemDownloadRestriction festlegen, wird die Downloadeinschränkung der Datei direkt vom Eigentümer oder Organisator angewendet. Einstellungen für geteilte Ablagen oder Regeln zum Schutz vor Datenverlust (Data Loss Prevention, DLP) werden dabei nicht berücksichtigt. Weitere Informationen finden Sie unter Informationen zum Schutz vor Datenverlust.
Wenn Sie das Feld itemDownloadRestriction aktualisieren, indem Sie das Feld restrictedForWriters auf true setzen, bedeutet das, dass restrictedForReaders auf true gesetzt ist. Wenn Sie restrictedForWriters auf true und restrictedForReaders auf false setzen, ist das dasselbe, als wenn Sie sowohl restrictedForWriters als auch restrictedForReaders auf true setzen.
Für das Feld effectiveDownloadRestrictionWithContext wird die Downloadeinschränkung auf die Datei angewendet und alle Einschränkungseinstellungen und DLP-Regeln werden berücksichtigt.
Das Feld effectiveDownloadRestrictionWithContext kann entweder auf restrictedForWriters oder restrictedForReaders gesetzt werden. Wenn es Einschränkungen für das Herunterladen oder Kopieren für die entsprechenden Rollen aus den Dateieinstellungen, den Einstellungen für geteilte Ablagen oder den DLP-Regeln gibt (einschließlich derjenigen mit Kontext), wird der Wert auf true gesetzt, andernfalls auf false.
Abwärtskompatibilität
Wir empfehlen, das
DownloadRestriction Objekt zu
verwenden, um festzulegen, wie Nutzer Dateien herunterladen, drucken und kopieren können.
Wenn Sie das
copyRequiresWriterPermission
boolesche Feld verwenden möchten, funktioniert es beim Lesen und Schreiben
anders.
Der abgerufene Wert des Felds copyRequiresWriterPermission gibt an, ob Nutzer mit der Berechtigung role=commenter oder role=reader Dateien in Google Drive herunterladen, drucken oder kopieren können. Der Feldwert spiegelt die Kombination aus Dateieinstellungen, Einstellungen für geteilte Ablagen oder DLP-Regeln wider. Die Kontextauswertung für DLP-Regeln ist jedoch nicht enthalten.
Wenn Sie das Feld copyRequiresWriterPermission auf false setzen, werden sowohl die Felder restrictedForWriters als auch restrictedForReaders auf false gesetzt. Das bedeutet, dass die Einschränkungen für das Herunterladen oder Kopieren für alle Nutzer entfernt werden.
Felder, die die Funktionen zum Herunterladen, Drucken und Kopieren steuern
In der folgenden Tabelle sind die Felder der Ressource files aufgeführt, die sich auf die Funktionen zum Herunterladen, Drucken und Kopieren auswirken:
| Feld | Beschreibung | Version |
|---|---|---|
capabilities.canCopy |
Gibt an, ob der aktuelle Nutzer eine Datei kopieren kann. | v2 und v3 |
capabilities.canDownload |
Gibt an, ob der aktuelle Nutzer eine Datei herunterladen kann. | v2 und v3 |
capabilities.canChangeCopyRequiresWriterPermission |
Gibt an, ob der aktuelle Nutzer die Einschränkung copyRequiresWriterPermission einer Datei ändern kann. |
v2 und v3 |
capabilities.canChangeItemDownloadRestriction |
Gibt an, ob der aktuelle Nutzer die Downloadeinschränkung einer Datei ändern kann. | Nur v3 |
copyRequiresWriterPermission |
Gibt an, ob die Optionen zum Kopieren, Drucken oder Herunterladen dieser Datei für Nutzer mit Lese- und Kommentierzugriff deaktiviert werden sollen. | v2 und v3 |
downloadRestrictions |
Die auf eine Datei angewendeten Downloadeinschränkungen. | Nur v3 |