Die Google Drive API unterstützt verschiedene Möglichkeiten, die Dateiänderung zu verhindern, z. B. die Einschränkung von Dateiinhalten und das Verbot des Herunterladens, Druckens oder Kopierens von Dateien.
Dateien mit Drive-Inhaltsbeschränkungen schreibgeschützt machen
Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um zu verhindern, dass Nutzer Folgendes tun:
- Titel ändern
- Inhalte bearbeiten
- Überarbeitung hochladen
- Kommentare hinzufügen oder ändern
Mit Inhaltseinschränkungen können Sie den Inhalt eines Drive-Elements schreibgeschützt machen, ohne die Zugriffsberechtigungen des Elements zu ändern. Es handelt sich also nicht um eine Zugriffsbeschränkung. Nutzer können den Inhalt der Datei zwar nicht ändern, aber je nach Zugriffsebene sind andere Vorgänge weiterhin zulässig. Ein Nutzer mit Bearbeitungszugriff kann beispielsweise weiterhin ein Element verschieben oder seine Freigabeeinstellungen ändern.
Damit ein Nutzer eine Inhaltsbeschränkung für eine Datei in Drive hinzufügen oder entfernen kann, benötigt er die zugehörigen Berechtigungen. Für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage mit der capabilities.canModifyEditorContentRestriction
muss Ihnen die role=writer
zugewiesen sein. Wenn für eine Datei oder einen Ordner in „Meine Ablage“ oder in einer geteilten Ablage eine ownerRestricted
-Einschränkung gilt, müssen Sie der Eigentümer der Datei sein oder role=organizer
haben. Um sich einen Artikel mit einer Inhaltsbeschränkung anzusehen, müssen Nutzer mindestens role=reader
Jahre alt sein. Eine vollständige Liste der Rollen finden Sie unter Rollen und Berechtigungen. Informationen zum Ändern der Berechtigungen für eine Datei finden Sie unter Berechtigungen ändern.
Sie können das boolesche Feld contentRestrictions.readOnly
auf der Ressource files
verwenden, um eine Inhaltsbeschränkung festzulegen. Hinweis: Wenn Sie eine Inhaltsbeschränkung für ein Element festlegen, wird die vorhandene überschrieben.
Szenarien für Inhaltsbeschränkungen
Eine Inhaltsbeschränkung für ein Drive-Element weist Nutzer darauf hin, dass die Inhalte nicht geändert werden dürfen. Das kann folgende Gründe haben:
- Die Arbeit an einem Gruppendokument während der Überprüfung oder Prüfung pausieren
- Festlegen eines endgültigen Status für ein Element, z. B. „Genehmigt“.
- Änderungen während einer vertraulichen Videokonferenz verhindern
- Externe Änderungen an Workflows, die von automatisierten Systemen verarbeitet werden, sind nicht zulässig.
- Änderungen durch Google Apps Script- und Google Workspace-Add-ons einschränken
- Verhindern von versehentlichen Änderungen an einem Dokument
Inhaltseinschrä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 können. Außerdem ist es nicht möglich, einen unveränderlichen Datensatz zu erstellen. Drive-Inhaltseinschränkungen können geändert werden. Eine Inhaltseinschränkung für ein Element ist also keine Garantie dafür, dass sich das Element nie ändert.
Dateien mit Inhaltseinschränkungen verwalten
Google Docs-, Google Sheets- und Google Präsentationen-Dateien sowie alle anderen Dateien können Inhaltseinschränkungen enthalten.
Eine Inhaltsbeschränkung für ein Element verhindert Änderungen an Titel und Inhalt, darunter:
- Kommentare und Vorschläge (in Google Docs, Google Tabellen, Google Präsentationen und Binärdateien)
- Versionen einer Binärdatei
- Text und Formatierung in Google Docs
- Text oder Formeln in Google Tabellen, ein Google Tabellen-Layout und Instanzen in Google Tabellen
- Alle Inhalte auf den Folien sowie die Reihenfolge und Anzahl der Folien
Bestimmte Dateitypen können keine Inhaltsbeschränkung enthalten. Beispiele:
- Google Formulare
- Google Sites
- Google Zeichnungen
- Tastenkombinationen und Tastenkombinationen von Drittanbietern Weitere Informationen finden Sie unter Verknüpfungsdatei für von Ihrer App gespeicherte Inhalte erstellen und Verknüpfung zu einer Drive-Datei erstellen.
Inhaltsbeschränkung hinzufügen
Wenn Sie eine Einschränkung für Dateiinhalte hinzufügen möchten, verwenden Sie die Methode files.update
und legen Sie das Feld contentRestrictions.readOnly
auf true
fest. Fügen Sie optional einen reason
hinzu, um anzugeben, warum Sie die Einschränkung hinzufügen, z. B. „Abgeschlossener Vertrag“. Das folgende Codebeispiel zeigt, wie eine Inhaltsbeschränkung hinzugefügt wird:
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 das fileId
der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, ist die Datei auf Inhalte beschränkt und neben dem Dateinamen in der Google Drive-Benutzeroberfläche wird ein Schlosssymbol ( ) angezeigt. Die Datei ist jetzt schreibgeschützt.
Inhaltseinschränkung entfernen
Wenn Sie eine Einschränkung für Dateiinhalte entfernen möchten, verwenden Sie die Methode files.update
und legen Sie das Feld contentRestrictions.readOnly
auf false
fest. Im folgenden Codebeispiel wird gezeigt, wie eine Inhaltsbeschränkung entfernt wird:
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 das fileId
der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, sind die Inhalte der Datei nicht mehr eingeschränkt.
Sie können auch über die Drive-Benutzeroberfläche eine Inhaltsbeschränkung entfernen und die Bearbeitung von Inhalten zulassen, sofern Sie die entsprechenden Berechtigungen haben. Dazu gibt es zwei Möglichkeiten:
Klicken Sie in Google Drive mit der rechten Maustaste auf die Datei mit einer Inhaltsbeschränkung und dann auf Entsperren
.Öffnen Sie die Datei mit einer Inhaltsbeschränkung und klicken Sie auf (Gesperrter Modus) > Datei entsperren.
Inhaltsbeschränkung prüfen
Wenn du prüfen möchtest, ob eine Inhaltsbeschränkung vorliegt, verwende die Methode files.get
mit dem zurückgegebenen Feld contentRestrictions
. Im folgenden Codebeispiel wird gezeigt, wie der Status einer Inhaltsbeschränkung geprüft wird:
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 das 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.
Inhaltseinschränkung hinzufügen, die nur der Dateiinhaber ändern kann
Wenn Sie eine Einschränkung für Dateiinhalte hinzufügen möchten, damit nur Dateiinhaber den Mechanismus aktivieren können, verwenden Sie die Methode files.update
und legen Sie das boolesche Feld contentRestrictions.ownerRestricted
auf true
fest. Im folgenden Codebeispiel wird gezeigt, wie Sie eine Inhaltsbeschränkung nur für Dateiinhaber hinzufügen:
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 das fileId
der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, ist die Datei aufgrund von Inhaltseinschränkungen nur für den Eigentümer der Datei sichtbar und kann nur von ihm entfernt werden. Wenn Sie der Eigentümer der Datei sind, wird in der Drive-Benutzeroberfläche neben dem Dateinamen ein aktives Schlosssymbol ( ) angezeigt. Wenn Sie nicht der Eigentümer sind, ist das Schlosssymbol ausgegraut.
Wenn Sie das Flag ownerRestricted
entfernen möchten, verwenden Sie die Methode files.update
, wobei das Feld contentRestrictions.ownerRestricted
auf false
gesetzt ist.
Funktionen für Inhaltsbeschränkungen
Eine files
-Ressource enthält eine Reihe von booleschen capabilities
-Feldern, die angeben, ob eine Aktion auf einer Datei ausgeführt werden kann.
Inhaltsbeschränkungen enthalten die folgenden capabilities
:
capabilities.canModifyEditorContentRestriction
: Gibt an, ob der aktuelle Nutzer eine Inhaltseinschränkung hinzufügen oder ändern kann.capabilities.canModifyOwnerContentRestriction
: Gibt an, ob der aktuelle Nutzer eine Einschränkung für Inhaberinhalte hinzufügen oder ändern kann.capabilities.canRemoveContentRestriction
: Gibt an, ob der aktuelle Nutzer die angewendete Inhaltseinschränkung (falls vorhanden) entfernen kann.
Weitere Informationen finden Sie unter Funktionen.
Ein Beispiel zum Abrufen der Datei capabilities
finden Sie unter Nutzerberechtigungen prüfen.
Herunterladen, Drucken oder Kopieren von Dateien verhindern
Sie können einschränken, wie Nutzer mit den Berechtigungen role=commenter
oder role=reader
Dateien in Drive, Docs, Sheets und Präsentationen herunterladen, drucken und kopieren können.
Wenn Sie die Optionen zum Herunterladen, Drucken und Kopieren von Dateien entfernen möchten, verwenden Sie die Methode files.update
und legen Sie das boolesche Feld copyRequiresWriterPermission
auf true
fest.