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:
- Formularze Google
- Witryny Google
- Rysunki Google
- Skróty i skróty innych firm. Więcej informacji znajdziesz w sekcji Tworzenie do treści przechowywanej przez aplikacji i Utwórz skrót do Plik na Dysku.
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 (interfejs Dysku Google (UI). jest teraz tylko do odczytu.
) pojawia się obok nazwy pliku wUsuwanie 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ć:
Na Dysku kliknij prawym przyciskiem myszy plik z ograniczeniem treści, kliknij Odblokuj
.Otwórz plik z ograniczeniem treści i kliknij (Tryb blokady) > Odblokuj plik.
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 (. Jeśli nie jesteś właścicielem, symbol kłódki jest wyszarzony. ) Interfejs Dysku (UI)
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
.