Wszystkie pliki, foldery i dyski współdzielone na Dysku Google zostały powiązane
permissions. Każdy zasób
Określa uprawnienia do określonego elementu type
(użytkownika, grupy, domeny, dowolnego użytkownika)
i role
, na przykład „komentator” czy „reader”. Na przykład plik może mieć
uprawnienie przyznające konkretnemu użytkownikowi (type=user
) dostęp tylko do odczytu
(role=reader
), podczas gdy inne uprawnienie zapewnia członkom konkretnej grupy
(type=group
) możliwość dodawania komentarzy do pliku (role=commenter
).
Pełną listę ról i dozwolonych przez nie działań znajdziesz tutaj: Role .
Scenariusze udostępniania zasobów z Dysku
Istnieje 5 różnych scenariuszy udostępniania:
Aby udostępnić plik z Mojego dysku, użytkownik musi mieć
role=writer
lubrole=owner
.Jeśli wartość logiczna
writersCanShare
ma wartośćFalse
dla pliku, użytkownik musi miećrole=owner
.Jeśli użytkownik z dostępem
role=writer
ma dostęp tymczasowy, którym podlegają datę i godzinę wygaśnięcia, nie możesz udostępnić pliku. Więcej informacje znajdziesz w sekcji Ustawianie daty ważności dostępu do plików .
Aby udostępnić folder na Moim dysku, użytkownik musi mieć
role=writer
lubrole=owner
.Jeśli wartość logiczna
writersCanShare
jest ustawiona naFalse
dla pliku, użytkownik musi mieć bardziej restrykcyjne ustawienierole=owner
.Dostęp tymczasowy (zarządzany przez datę i godzinę wygaśnięcia) jest niedozwolony w folderach Mojego dysku za pomocą usługi
role=writer
. Więcej Więcej informacji zawiera Określ datę ważności, aby ograniczyć dostęp do pliku.
Aby udostępnić plik na dysku współdzielonym, użytkownik musi mieć
role=writer
,role=fileOrganizer
lubrole=organizer
.- Ustawienie
writersCanShare
nie ma zastosowania do elementów na dyskach współdzielonych. Funkcja jest traktowana tak, jakby zawsze miała wartośćTrue
.
- Ustawienie
Aby udostępnić folder na dysku współdzielonym, użytkownik musi mieć
role=organizer
.- Jeśli ograniczenie
sharingFoldersRequiresOrganizerPermission
na dysk współdzielony jest ustawiony naFalse
, użytkownicy mającyrole=fileOrganizer
mogą foldery na tym dysku współdzielonym.
- Jeśli ograniczenie
Aby zarządzać użytkownikami dysku współdzielonego, użytkownik musi mieć
role=organizer
. Tylko Użytkownicy i grupy mogą być użytkownikami dysków współdzielonych.
Ustaw datę ważności, aby ograniczyć dostęp do pliku
Gdy pracujesz z innymi nad projektem o charakterze poufnym, ograniczy dostęp do niektórych plików na Dysku po okresie obecnie się znajdujesz. W przypadku plików na Moim dysku możesz ustawić datę ważności na ograniczyć lub zablokować dostęp do tego pliku.
Aby ustawić datę ważności:
- Korzystanie z
permissions.create
i ustaw funkcjępermissions.expirationTime
(wraz z innymi wymaganymi polami). Więcej informacji: Utwórz uprawnienie. - Korzystanie z
permissions.update
i ustaw polepermissions.expirationTime
(wraz z drugą wymagane pola). Więcej informacji znajdziesz w sekcji Zmiana .
Pole expirationTime
wskazuje, kiedy uprawnienie wygasa. Służą do tego RFC 3339
data-godzina
, Terminy ważności mają następujące ograniczenia:
- Można je ustawiać tylko dla uprawnień użytkownika i grupy.
- Godzina musi przypadać w przyszłości.
- Godzina nie może być oddalona o więcej niż rok w przyszłość.
Więcej informacji o dacie ważności znajdziesz w tych artykułach:
Propagacja uprawnień
Listy uprawnień dotyczące folderu są rozpowszechnione w dół, a wszystkie pliki podrzędne i foldery dziedziczą uprawnienia z folderu nadrzędnego. Jeśli uprawnienia lub zmieni się hierarchia, propagacja następuje rekurencyjnie przez wszystkie zagnieżdżone foldery. Jeśli na przykład plik istnieje w folderze, a ten folder zostanie przeniesiony w innym folderze, uprawnienia z nowego folderu zostaną rozpowszechnione w pliku. Jeśli nowy folder przypisze użytkownikowi pliku nową rolę, taką jak „zapisujący”, jego zastąpi ich starą rolę.
Jeśli plik dziedziczy właściwość role=writer
z folderu i zostanie przeniesiony do
inny folder, który zawiera „czytnika” , plik dziedziczy
role=reader
Odziedziczonych uprawnień nie można usunąć z pliku ani folderu na dysku współdzielonym. Zamiast tego należy dostosować te uprawnienia w bezpośrednim lub pośrednim elemencie nadrzędnym z odziedziczone. Odziedziczone uprawnienia można usunąć z elementów w „Mój dysk” lub „Udostępnione dla mnie”.
Możesz też zastąpić odziedziczone uprawnienia do pliku lub folderu w sekcji Moje
Dysk. Jeśli więc plik dziedziczy właściwość role=writer
z elementu Mój
na Dysku, możesz ustawić role=reader
w pliku, aby zmniejszyć jego
poziom uprawnień.
Możliwości
Zasób Permissions nie zawsze
Określają uprawnienia bieżącego użytkownika do wykonywania działań w pliku lub folderze.
Zamiast tego zasób Files zawiera zbiór
wartości logiczne capabilities
są używane do wskazywania, czy działanie może
wykonywać na pliku lub folderze. Interfejs Google Drive API ustawia te pola na podstawie
zasób uprawnień bieżącego użytkownika powiązany z plikiem lub folderem.
Na przykład gdy Olek loguje się w Twojej aplikacji i próbuje udostępnić plik, rola Alexa
jest sprawdzana pod kątem uprawnień do pliku. Jeśli rola pozwala na udostępnienie pliku,
pola capabilities
powiązane z plikiem, na przykład canShare
, są wypełnione
w stosunku do roli. Jeśli Alex chce udostępnić plik, aplikacja sprawdza
capabilities
, aby upewnić się, że ustawienie canShare
ma wartość true
.
Przykład pobierania pliku capabilities
znajdziesz w sekcji Weryfikowanie użytkownika
uprawnienia.
Utwórz uprawnienie
Te 2 pola są niezbędne podczas tworzenia uprawnień:
type
–type
określa zakres uprawnienia (user
,group
,domain
lubanyone
). Uprawnienie ztype=user
dotyczy konkretnego użytkownika, uprawnienie ztype=domain
ma zastosowanie do wszystkich użytkowników w określonej domenie.role
– polerole
wskazuje operacje, które może wykonaćtype
. Na przykład plik uprawnienie ztype=user
irole=reader
przyznaje konkretnemu użytkownikowi dostęp tylko do odczytu pliku lub folderu. Możesz też użyć uprawnień z aplikacjątype=domain
arole=commenter
umożliwia wszystkim użytkownikom w domenie dodawanie komentarzy do pliku. Dla: pełną listę ról i dozwolonych przez nie działań znajdziesz tutaj: Role .
Tworząc uprawnienie, w którym type=user
lub type=group
musisz też
podaj emailAddress
do dopasowania
konkretnego użytkownika lub grupy z uprawnieniami.
Tworząc uprawnienie, w którym type=domain
musisz też podać:
domain
, aby powiązać określoną domenę.
uprawnienia.
Aby utworzyć uprawnienie:
- Używanie metody
permissions.create
fileId
dla powiązanego pliku lub folderu. - W treści żądania określ
type
irole
. - Jeśli
type=user
lubtype=group
, podajemailAddress
. Jeślitype=domain
, podajdomain
.
Pokaż przykład
Poniższy przykładowy kod pokazuje, jak utworzyć uprawnienie. Odpowiedź zwraca instancję zasobu Permission
, w tym przypisanego zasobu permissionId
.
Wyślij prośbę
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Odpowiedź
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Użyj grup odbiorców
Grupy odbiorców to grupy osób (np. działy lub zespoły), których możesz obejmować użytkownikom, którym mogą udostępnić swoje produkty. Można zachęcić użytkowników do tylko dla określonych elementów, a nie do całej grupy odbiorców Twojej organizacji. Grupy odbiorców mogą pomóc w poprawie bezpieczeństwa i prywatności swoje dane i ułatwiaj użytkownikom ich prawidłowe udostępnianie. Więcej więcej informacji można znaleźć w artykule Element docelowy – informacje odbiorcy ,
Aby użyć grup odbiorców:
W konsoli administracyjnej Google kliknij Menu. > Katalog > Grupy odbiorców.
Aby wykonać tę czynność, musisz zalogować się na konto z uprawnieniami superadministratora.
Na liście odbiorców docelowych kliknij nazwę wybranej grupy. Do jak utworzyć grupę odbiorców, przeczytaj artykuł Tworzenie grupy odbiorców odbiorcy
Skopiuj unikalny identyfikator z adresu URL grupy odbiorców:
https://admin.google.com/ac/targetaudiences/ID
.Utwórz uprawnienie w:
type=domain
i ustaw poledomain
naID.audience.googledomains.com
.
Informacje o tym, jak użytkownicy wchodzą w interakcje z grupami odbiorców, znajdziesz w artykule Interfejs użytkownika i link udostępnianie ,
Pobieranie wszystkich uprawnień dotyczących pliku, folderu lub dysku współdzielonego
Użyj metody permissions.list
, aby
pobierz wszystkie uprawnienia do pliku, folderu lub dysku współdzielonego.
Pokaż przykład
Poniższy przykładowy kod pokazuje, jak uzyskać wszystkie uprawnienia. Odpowiedź zwraca listę uprawnień.
Wyślij prośbę
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Odpowiedź
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Weryfikowanie uprawnień użytkownika
Gdy aplikacja otwiera plik, powinna sprawdzać jego możliwości i renderować
interfejs, aby odzwierciedlić uprawnienia bieżącego użytkownika. Jeśli na przykład użytkownik
nie ma funkcji canComment
w pliku, możliwość komentowania
powinna być wyłączona w interfejsie.
Więcej informacji o funkcji capabilities
znajdziesz w sekcji Potencjał.
powyżej.
Aby sprawdzić możliwości, wywołaj files.get
z
Parametry fileId
i fields
ustawione na pole capabilities
. Dla:
więcej informacji o zwracaniu pól za pomocą parametru fields
znajdziesz w artykule
Zwracanie określonych pól w pliku.
Pokaż przykład
Przeanalizuj przykładowy kod poniżej, aby się dowiedzieć, jak sprawdzić uprawnienia użytkownika. Odpowiedź zwraca listę uprawnień użytkownika dotyczących pliku. Każda możliwość odpowiada szczegółowemu działaniu, które może wykonać użytkownik. Niektóre pola są wypełniane tylko w przypadku elementów na dyskach współdzielonych.
Wyślij prośbę
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Odpowiedź
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
Określanie źródła roli plików na dysku współdzielonym foldery
Aby zmienić rolę w pliku lub folderze, musisz znać źródło roli. W przypadku dysków współdzielonych źródło roli może zależeć od członkostwa w na dysku, roli w folderze lub roli w pliku.
Aby określić źródło roli dysku współdzielonego lub znajdujących się na nim elementów
zadzwoń do: permissions.get
, podając
fileId
, permissionId
i fields
ustawione na
permissionDetails
. Aby znaleźć permissionId
, użyj
permissions.list
z: fileId
. Do
pobierz pole permissionDetails
w żądaniu permissions.list
, ustaw
fields
parametr do permissions/permissionDetails
.
To pole zawiera wszystkie odziedziczone i bezpośrednie uprawnienia do plików przypisane do użytkownika. grupę lub domenę.
Pokaż przykład
Poniższy przykładowy kod pokazuje, jak określić źródło roli. Odpowiedź zwraca wartość permissionDetails
zasobu Permission
. Pole inheritedFrom
zawiera identyfikator elementu, z którego dane uprawnienie jest dziedziczone.
Wyślij prośbę
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Odpowiedź
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Zmień uprawnienia
Aby zmienić uprawnienia do pliku lub folderu, możesz zmienić przypisaną rolę:
Zadzwoń pod numer
permissions.update
, podającpermissionId
uprawnień do zmiany ifileId
dla powiązany plik, folder lub dysk współdzielony. Aby znaleźćpermissionId
, użyjpermissions.list
z:fileId
.W żądaniu znajdź nowy element
role
.
Możesz przyznawać uprawnienia do poszczególnych plików i folderów na dysku współdzielonym, nawet
jeśli użytkownik lub grupa jest już członkiem. Na przykład Aleksander ma słowo role=commenter
w ramach subskrypcji dysku współdzielonego. Jednak Twoja aplikacja może przyznać Alexowi uprawnienia
role=writer
. Ponieważ nowa rola
jest bardziej mało restrykcyjna niż rola przyznawana przez członkostwo,
staje się rolą efektywną dla pliku lub folderu.
Pokaż przykład
Poniższy przykładowy kod pokazuje, jak zmienić uprawnienia do pliku lub folderu z komentującego na zapisującego. Odpowiedź zwraca instancję zasobu Permission
.
Wyślij prośbę
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Odpowiedź
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Anulowanie dostępu do pliku lub folderu
Aby unieważnić dostęp do pliku lub folderu, wywołaj
delete
z: fileId
i
permissionId
, aby usunąć to uprawnienie.
W przypadku elementów na „Moim dysku” można usunąć dziedziczone uprawnienia. Usunięcie dziedziczonych uprawnień cofa dostęp do elementu, a elementów podrzędnych, o ile takie istnieją.
Nie można cofnąć dziedziczonych uprawnień do elementów na dysku współdzielonym. Zaktualizuj lub odbierz uprawnienia do pliku lub folderu nadrzędnego.
Operacja delete
służy też do usuwania uprawnień bezpośrednio zastosowanych do
plik lub folder na dysku współdzielonym.
Pokaż przykład
Poniższy przykładowy kod pokazuje, jak anulować dostęp przez usunięcie permissionId
. Jeśli operacja się uda, treść odpowiedzi będzie pusta. Aby potwierdzić, że uprawnienia zostały usunięte, użyj uprawnienia permissions.list
z: fileId
.
Wyślij prośbę
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Przenoszenie własności pliku na inne konto Google Workspace w tej samej organizacji
Własność plików istniejących na „Moim dysku” Można przenieść z 1 konto Google Workspace. z innego konta w tej samej organizacji. Organizacja, do której należy plik udostępniony jest właścicielem znajdujących się na nim plików. W związku z tym przenoszenie własności nie jest obsługiwane. w plikach i folderach na dyskach współdzielonych. Organizatorzy dysku współdzielonego mogą przenosić pliki elementów z tego dysku współdzielonego na własny „Mój dysk” który przenosi własność na tego użytkownika.
Aby przenieść własność pliku na „Moim dysku”, wykonaj jedną z :
Utwórz uprawnienia do pliku przyznające konkretnemu użytkownikowi (
type=user
) dostęp właściciela (role=owner
).Zaktualizuj uprawnienia istniejącego pliku o uprawnienia
role=owner
i przenieś prawa własności do określonego użytkownika (transferOwnership=true
).
Przenoszenie własności pliku z jednego konta klienta na inne
Własność plików można przenieść między kontami indywidualnymi. Jednak Dysk nie przenosi prawa własności do pliku między dwoma kontami. konsument konta dopóki potencjalny nowy właściciel nie wyrazi na to zgody. Aby przenieść prawa własności do plików z jednego konta klienta na inne:
Obecny właściciel inicjuje przeniesienie własności przez utworzenie lub aktualizację uprawnienia nowego właściciela do plików. Uprawnienie musi zawierać te ustawienia:
role=writer
,type=user
ipendingOwner=true
. Jeśli nowy właściciel tworzy uprawnienia dla potencjalnego właściciela, adres e-mail do potencjalnego nowego właściciela zostanie wysłane powiadomienie, że poproszono o przyjęcie własności pliku.Nowy właściciel akceptuje prośbę o przeniesienie własności przez utworzenie lub zaktualizowanie uprawnienia do plików. Uprawnienia muszą obejmować te ustawienia:
role=owner
itransferOwnership=true
. Jeśli nowy właściciel tworzy nowe uprawnienia, poprzedni właściciel otrzyma e-maila z powiadomieniem z informacją, że prawo własności zostało przeniesione.
Po przeniesieniu pliku rola poprzedniego właściciela zmienia się na writer
.
Zmiana wielu uprawnień za pomocą żądań zbiorczych
Zdecydowanie zalecamy użycie żądania zbiorcze modyfikowania wielu uprawnień.
Poniżej znajduje się przykład wykonania zbiorczej modyfikacji uprawnień za pomocą z biblioteką klienta.