Die Google Drive API unterstützt verschiedene Möglichkeiten, die Dateiänderung zu verhindern, einschließlich der Einschränkung von Dateiinhalten und der Deaktivierung der Option zum Herunterladen, Drucken oder Kopieren von Dateien.
Dateien mit Drive-Inhaltsbeschränkungen schreibgeschützt machen
Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um Nutzer an folgenden Aktionen zu hindern:
- 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 mit Bearbeitungszugriff können zwar den Inhalt der Datei nicht ändern, aber andere Vorgänge sind basierend auf der Zugriffsebene zulässig. Ein Nutzer mit Bearbeitungszugriff kann beispielsweise Elemente 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. Für eine Datei oder einen Ordner in „Meine Ablage“ oder eine geteilte Ablage mit der Inhaltsbeschränkung ownerRestricted
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. 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 Besprechung mit vertraulichen Inhalten 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
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 können. Außerdem ist dies keine Möglichkeit, 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.
Durch eine Inhaltsbeschränkung für ein Element werden Änderungen am Titel und Inhalt verhindert, 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
- Den gesamten Inhalt in Google Präsentationen 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 zu Inhalten erstellen, die in Ihrer Anwendung gespeichert sind 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 ein reason
hinzu, um anzugeben, warum Sie die Einschränkung hinzufügen möchten, 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 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.
Inhaltsbeschränkung aufheben
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, gilt für die Datei keine Inhaltsbeschränkung mehr.
Sie können auch über die Drive-UI eine Inhaltsbeschränkung entfernen und das Bearbeiten 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.
Auf 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, sofern 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 die fileId
der Datei, die Sie ändern möchten.
Wenn Sie den Beispielcode ausführen, gilt für die Datei eine Einschränkung des Inhalts und kann nur von Dateieigentümern entfernt werden. Wenn Sie der Dateieigentümer sind, wird neben dem Dateinamen auf der Drive-Benutzeroberfläche (UI) ein aktives Schloss-Symbol ( ) 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 Inhaltsbeschrä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, Google Docs, Google Tabellen und Google 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.