Ochrona treści pliku

Interfejs Google Drive API umożliwia zapobieganie modyfikacjom plików na kilka sposobów, na przykład ograniczenia treści plików oraz zakaz pobierania, drukowania lub kopiowania .

Ustawianie plików jako tylko do odczytu z ograniczeniami treści na Dysku

Możesz dodać ograniczenie treści do pliku na Dysku Google, aby uniemożliwić użytkownikom wykonując te czynności:

  • Zmiana tytułu
  • Wprowadzanie zmian w treści
  • Przesyłanie wersji
  • Dodawanie i modyfikowanie komentarzy

Stosowanie ograniczeń treści to mechanizm, który umożliwia Element na Dysku jako tylko do odczytu bez zmiany jego adresu dostępu do uprawnień. Oznacza to, że nie jest ograniczeniem dostępu. Użytkownicy nie mogą modyfikować zawartości pliku, Operacje są wciąż dozwolone w zależności od poziomu dostępu (np. użytkownik z z uprawnieniami do edycji nadal mogą przenosić elementy lub zmieniać jego ustawienia udostępniania).

Aby dodać lub usunąć ograniczenie treści w pliku na Dysku, użytkownik: musi mieć powiązane permissions. W przypadku pliku lub folderu w Mój dysk lub dysk współdzielony z capabilities.canModifyEditorContentRestriction, musisz mieć role=writer przypisano. W przypadku pliku lub folderu na Moim dysku albo dysku współdzielonego ograniczenie treści ownerRestricted, musisz być właścicielem pliku lub role=organizer Aby wyświetlić element objęty ograniczeniem treści, użytkownik musi mieć role=reader lub więcej. Pełną listę ról znajdziesz w sekcji Role . Aby zmienić uprawnienia do pliku, zobacz Zmień uprawnienia.

Pole wartości logicznej contentRestrictions.readOnly można użyć w funkcji Zasób files do ustawienia ograniczenie treści. Pamiętaj, że ustawienie ograniczenia treści dla elementu zastąpi istniejącą.

Scenariusze związane z ograniczeniami treści

Ograniczenie treści elementu na Dysku informuje użytkowników, że nie należy zmieniać jego treści. Oto możliwe przyczyny:

  • Wstrzymywanie pracy nad wspólnym dokumentem na czas sprawdzania lub kontroli.
  • Ustawienie elementu jako ostatecznego, np. zatwierdzonego.
  • Zapobieganie zmianom podczas spotkania o charakterze wrażliwym.
  • Uniemożliwianie wprowadzania zewnętrznych zmian w przepływach pracy obsługiwanych przez automatyczne systemy.
  • Ograniczanie możliwości edytowania za pomocą Google Apps Script i dodatków do Google Workspace.
  • Zapobieganie przypadkowemu edytowaniu dokumentu.

Ograniczenia treści ułatwiają zarządzanie treścią, uniemożliwia użytkownikom z wystarczającymi uprawnieniami dalszą pracę nad elementu. Ponadto nie jest to sposób na utworzenie rekordu stałego. Ograniczenia treści na Dysku są zmienne, co oznacza, że ograniczenia treści nie gwarantuje, że nigdy się nie zmieni.

Zarządzanie plikami z ograniczeniami treści

Dokumentów, Arkuszy i Prezentacji Google, a także wszystkich innych plików, mogą zawierać ograniczenia treści.

Ograniczenie treści elementu uniemożliwia zmianę jego tytułu i treści. w tym:

  • komentarze i sugestie (w Dokumentach, Arkuszach, Prezentacje i pliki binarne)
  • Wersje pliku binarnego
  • Tekst i formatowanie w Dokumentach
  • tekstu lub formuł w Arkuszach, układu Arkuszy, i instancje w Arkuszach
  • Wszystkie treści w Prezentacjach, a także kolejność i numer slajdy

Niektóre typy plików nie mogą zawierać ograniczeń treści. Oto kilka przykładów:

Dodaj ograniczenie treści

Aby dodać ograniczenie treści pliku, użyj files.update z parametrem Pole contentRestrictions.readOnly zostało ustawione na true. Dodaj opcjonalny element reason do: dlaczego dodajesz ograniczenie, np. „Sfinalizowana umowa”. Poniżej przykładowy kod pokazuje, jak dodać ograniczenie treści:

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;
  }
}

Zastąp FILE_ID wartością fileId pliku, który chcesz modyfikować.

Po uruchomieniu przykładowego kodu dostęp do pliku jest ograniczony, a wyświetla się symbol kłódki () pojawia się obok nazwy pliku w interfejs Dysku Google (UI). jest teraz tylko do odczytu.

Plik z ograniczeniem treści w obrębie listy plików na Dysku.
Rysunek 1. Plik z ograniczeniem treści w obrębie listy plików na Dysku.

Usuwanie ograniczenia treści

Aby usunąć ograniczenie treści pliku, użyj metody files.update z parametrem Pole contentRestrictions.readOnly zostało ustawione na false. Następujący przykładowy kod pokazuje, jak usunąć ograniczenie treści:

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;
  }
}

Zastąp FILE_ID wartością fileId pliku, który chcesz modyfikować.

Po uruchomieniu przykładowego kodu treść pliku nie jest już ograniczona.

Ograniczenie treści możesz też usunąć w interfejsie Dysku. zezwolić na edytowanie treści (pod warunkiem, że masz odpowiednie uprawnienia). Dostępne są 2 jak to zrobić:

  1. Na Dysku kliknij prawym przyciskiem myszy plik z ograniczeniem treści, kliknij Odblokuj .

    Usuń ograniczenie treści pliku z listy plików na Dysku.
    Rysunek 2. Usuń ograniczenie treści pliku z listy plików na Dysku.
  2. Otwórz plik z ograniczeniem treści i kliknij (Tryb blokady) > Odblokuj plik.

    Usuń ograniczenie treści pliku w dokumencie.
    Rysunek 3. Usuń ograniczenie treści pliku w dokumencie.

Sprawdzanie, czy treści są objęte ograniczeniami

Aby sprawdzić, czy treści są objęte ograniczeniami, użyj files.get z parametrem contentRestrictions zwrócone pole. Przeanalizuj przykładowy kod poniżej, aby dowiedzieć się, sprawdź stan ograniczenia treści:

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;
  }
}

Zastąp FILE_ID wartością fileId pliku, który chcesz sprawdzić.

Po uruchomieniu przykładowego kodu metoda zwraca ContentRestriction jeśli istnieje.

Dodawanie ograniczenia treści, które może modyfikować tylko właściciel pliku

Aby dodać ograniczenie treści pliku, tak aby tylko właściciele plików mogli przełączać ten mechanizm, użyj metody files.update z pole wartości logicznej contentRestrictions.ownerRestricted ustawiono na true. ten przykładowy kod pokazuje, jak dodać ograniczenie treści dla właścicieli plików tylko:

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;
  }
}

Zastąp FILE_ID wartością fileId pliku, który chcesz modyfikować.

Po uruchomieniu przykładowego kodu dostęp do treści jest ograniczony i ogranicza się do pliku mogą je usunąć. Jeśli jesteś właścicielem pliku, w sekcji obok nazwy pliku pojawi się aktywny symbol kłódki () Interfejs Dysku (UI). Jeśli nie jesteś właścicielem, symbol kłódki jest wyszarzony.

Aby usunąć flagę ownerRestricted, użyj metody files.update z parametrem Pole contentRestrictions.ownerRestricted zostało ustawione na false.

Możliwości ograniczeń treści

Zasób files zawiera element zbiór pól capabilities z wartościami logicznymi używanymi do wskazywania, czy działanie co można wykonać na pliku.

Ograniczenia treści obejmują te elementy (capabilities):

  • capabilities.canModifyEditorContentRestriction: określa, czy bieżący użytkownik mogą dodawać lub modyfikować ograniczenia treści.
  • capabilities.canModifyOwnerContentRestriction: określa, czy bieżący użytkownik mogą dodawać lub modyfikować ograniczenia treści należące do właściciela.
  • capabilities.canRemoveContentRestriction: określa, czy bieżący użytkownik może usuń zastosowane ograniczenie treści (jeśli występuje).

Więcej informacji: Potencjał.

Przykład pobierania pliku capabilities znajdziesz w sekcji Weryfikowanie użytkownika uprawnienia.

Blokowanie użytkownikom możliwości pobierania, drukowania i kopiowania pliku

Możesz ograniczyć uprawnienia użytkowników z uprawnieniami role=commenter lub role=reader pobieranie, drukowanie i kopiowanie plików na Dysku; Dokumenty, Arkusze i Prezentacje.

Aby usunąć opcje pobierania, drukowania i kopiowania plików, użyj files.update z parametrem Pole wartości logicznej copyRequiresWriterPermission ustawiono na true.