Dateiinhalte schützen

Die Google Drive API unterstützt mehrere Möglichkeiten, um Dateiänderungen zu verhindern, darunter: Einschränkung von Dateiinhalten und Verbot der Option, Dateien herunterzuladen, zu drucken oder zu kopieren -Dateien.

Dateien mit Inhaltsbeschränkungen für Drive schreibgeschützt machen

Sie können einer Google Drive-Datei eine Inhaltsbeschränkung hinzufügen, um zu verhindern, dass Nutzer Dazu gehen Sie so vor:

  • Ändern des Titels
  • Inhalte bearbeiten
  • Überarbeitung hochladen
  • Kommentare hinzufügen oder ändern

Durch Inhaltsbeschränkungen kann der Inhalt eines Drive-Element wird schreibgeschützt, ohne die Einstellungen des Drive-Elements zu ändern Zugriffsberechtigungen. Das heißt, es ist keine Zugriffsbeschränkung. Nutzer können den Inhalt der Datei nicht ändern, andere Vorgänge sind basierend auf der Zugriffsebene zulässig (z. B. ein Nutzer mit mit Bearbeitungszugriff weiterhin Elemente verschieben oder die Freigabeeinstellungen ändern können.

Um eine Inhaltsbeschränkung für eine Datei in Google Drive hinzuzufügen oder zu entfernen, müssen die zugehörigen Berechtigungen. Für eine Datei oder einen Ordner in „Meine Ablage“ oder eine geteilte Ablage mit dem capabilities.canModifyEditorContentRestriction, du benötigst role=writer zugewiesen sind. Für eine Datei oder einen Ordner in „Meine Ablage“ oder eine geteilte Ablage mit ownerRestricted-Inhaltsbeschränkung haben, müssen Sie der Eigentümer der Datei sein oder role=organizer. Um ein Element mit einer Inhaltsbeschränkung anzusehen, müssen Nutzer role=reader oder höher. Eine vollständige Liste der Rollen finden Sie unter Rollen und Berechtigungen Informationen zum Ändern von Berechtigungen für eine Datei finden Sie unter Berechtigungen ändern

Sie können das boolesche Feld contentRestrictions.readOnly auf der files festzulegende Ressource Inhaltsbeschränkung. Beachten Sie, dass das Festlegen einer Inhaltsbeschränkung für ein Element die vorhandene Regel überschrieben.

Szenarien für Inhaltsbeschränkungen

Eine Inhaltsbeschränkung für ein Drive-Element signalisiert Nutzern, dass die sollte nicht geändert werden. Das kann folgende Gründe haben:

  • Pausieren der Arbeit an einem gemeinsamen Dokument während Prüf- oder Prüfzeiträumen
  • Festlegen eines abgeschlossenen Elements, 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
  • Versehentliche Änderungen an einem Dokument vermeiden

Hinweis: Inhaltsbeschränkungen können zwar bei der Verwaltung von Inhalten helfen, müssen aber nicht Nutzer mit den erforderlichen Berechtigungen daran zu hindern, ein. Außerdem ist dies keine Möglichkeit, einen unveränderlichen Datensatz zu erstellen. Inhaltsbeschränkungen in Google Drive sind änderbar, für einen Artikel garantiert nicht, dass er sich nie ändert.

Dateien mit Inhaltsbeschränkungen verwalten

Google Docs, Google Tabellen und Google Präsentationen sowie alle anderen Dateien, kann Inhaltsbeschränkungen enthalten.

Durch eine Inhaltsbeschränkung für ein Element werden Änderungen am Titel und Inhalt verhindert. einschließlich:

  • Kommentare und Vorschläge (in Docs, Tabellen, Präsentationen und Binärdateien)
  • Überarbeitungen einer Binärdatei
  • Text und Formatierung in Google Docs
  • Texte oder Formeln in Google Tabellen, und Instanzen in Google Tabellen
  • Alle Inhalte in Google Präsentationen sowie deren Reihenfolge und Nummer Folien

Bestimmte Dateitypen dürfen keine Inhaltsbeschränkung enthalten. Hier einige Beispiele:

Inhaltsbeschränkung hinzufügen

Wenn Sie eine Inhaltsbeschränkung für Dateien hinzufügen möchten, verwenden Sie die Methode files.update-Methode mit dem Das Feld contentRestrictions.readOnly wurde auf true festgelegt. Fügen Sie optional ein reason für warum Sie die Einschränkung hinzufügen, z. B. „Abgeschlossener Vertrag“. Die folgenden Das 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 löschen möchten. ändern können.

Wenn Sie den Beispielcode ausführen, unterliegt die Datei einer inhaltsbedingten Einschränkung und hat ein Schloss-Symbol () wird neben dem Dateinamen in der Google Drive-Benutzeroberfläche (Benutzeroberfläche). Die -Datei ist jetzt schreibgeschützt.

Eine Datei mit einer Inhaltsbeschränkung in einer Drive-Dateiliste.
Abbildung 1. Eine Datei mit einer Inhaltsbeschränkung in einer Drive-Dateiliste.

Inhaltsbeschränkung aufheben

Wenn Sie eine Einschränkung von Dateiinhalten entfernen möchten, verwenden Sie die Methode files.update mit dem Das Feld contentRestrictions.readOnly wurde auf false festgelegt. Im folgenden Codebeispiel wird zeigt, 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 die fileId der Datei, die Sie löschen möchten. ändern können.

Wenn Sie den Beispielcode ausführen, gilt für die Datei keine Inhaltsbeschränkung mehr.

Sie können Inhaltsbeschränkungen auch über die Drive-Benutzeroberfläche entfernen das Bearbeiten von Inhalten zulassen (vorausgesetzt, Sie haben die entsprechenden Berechtigungen). Es gibt zwei haben Sie folgende Möglichkeiten:

  1. Klicken Sie in Google Drive mit der rechten Maustaste auf die Datei mit einer Inhaltsbeschränkung und Klicken Sie auf Entsperren .

    Eine Inhaltsbeschränkung für Dateien innerhalb einer Drive-Dateiliste aufheben
    Abbildung 2. Eine Inhaltsbeschränkung für Dateien innerhalb einer Drive-Dateiliste aufheben.
  2. Öffnen Sie die Datei mit einer Inhaltsbeschränkung und klicken Sie auf (Sperrmodus). > Datei entsperren.

    <ph type="x-smartling-placeholder">
    </ph> Entfernen Sie eine Inhaltsbeschränkung für Dateien innerhalb eines Dokuments.
    Abbildung 3: Entfernen Sie eine Inhaltsbeschränkung für Dateien innerhalb eines Dokuments.

Auf Inhaltsbeschränkung prüfen

Verwende die Methode files.get-Methode mit dem contentRestrictions hat ein Feld zurückgegeben. 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 löschen möchten. überprüfen.

Wenn Sie den Beispielcode ausführen, gibt die Methode ein ContentRestriction Ressource, falls vorhanden.

Inhaltsbeschränkung hinzufügen, die nur der Dateieigentümer ändern kann

So fügen Sie eine Einschränkung des Dateiinhalts hinzu, sodass nur Dateieigentümer den Mechanismus aktivieren oder deaktivieren können: Verwenden Sie die Methode files.update mit Das boolesche Feld contentRestrictions.ownerRestricted, das auf true festgelegt ist. Die Im folgenden Codebeispiel wird gezeigt, wie Sie eine Inhaltsbeschränkung für Dateieigentümer hinzufügen. Nur:

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 löschen möchten. ändern können.

Wenn Sie den Beispielcode ausführen, ist die Datei inhaltsbeschränkt und nur kann der Inhaber sie entfernen. Wenn Sie der Dateieigentümer sind, wird neben dem Dateinamen in der ein aktives Schloss-Symbol () angezeigt. Drive-Benutzeroberfläche (Benutzeroberfläche). Wenn wenn Sie nicht der Eigentümer sind, ist das Schloss-Symbol abgeblendet.

Verwenden Sie zum Entfernen des Flags ownerRestricted die Methode files.update mit dem Das Feld contentRestrictions.ownerRestricted wurde auf false festgelegt.

Funktionen zur Einschränkung von Inhalten

Eine files-Ressource enthält einen Sammlung boolescher capabilities-Felder, mit denen angegeben wird, ob eine Aktion die für eine Datei ausgeführt werden können.

Inhaltsbeschränkungen umfassen die folgenden capabilities:

  • capabilities.canModifyEditorContentRestriction: gibt an, ob der aktuelle Nutzer können eine Inhaltsbeschränkung hinzufügen oder ändern.
  • capabilities.canModifyOwnerContentRestriction: gibt an, ob der aktuelle Nutzer können Inhaltsbeschränkungen für Inhaber hinzufügen oder ändern.
  • capabilities.canRemoveContentRestriction: Gibt an, ob der aktuelle Nutzer angewandte Inhaltsbeschränkung entfernen (falls vorhanden).

Weitere Informationen finden Sie unter Funktionen:

Ein Beispiel für das Abrufen der Datei capabilities finden Sie unter Nutzer bestätigen Berechtigungen

Verhindern, dass Nutzer Dateien herunterladen, drucken oder kopieren

Sie können einschränken, wie Nutzer mit den Berechtigungen role=commenter oder role=reader Folgendes tun können: Dateien in Google Drive herunterladen, drucken und kopieren, Google Docs, Google Tabellen und Google Präsentationen.

Um die Optionen zum Herunterladen, Drucken und Kopieren von Dateien zu entfernen, verwenden Sie die files.update-Methode mit dem Boolesches Feld copyRequiresWriterPermission auf true festgelegt.