Różnice między interfejsem My Drive API a dyskami współdzielonymi

Dyski współdzielone mają inne modele organizacji, udostępniania i własności niż Mój dysk. Dlatego w przypadku treści na dysku współdzielonym niektóre operacje na Moim dysku są niedozwolone.

W tym przewodniku opisujemy różnice w interfejsie API dotyczące dysków współdzielonych w zasobach files i changes.

Zasób pliku

Te pola w zasobie files są wypełniane tylko w przypadku plików znajdujących się na dysku współdzielonym:

  • hasAugmentedPermissions: Czy użytkownicy mają bezpośredni dostęp do tego pliku.
  • capabilities/canAddFolderFromAnotherDrive: czy bieżący użytkownik może dodać do tego folderu folder z innego dysku (innego dysku współdzielonego lub Mojego dysku).
  • capabilities/canDeleteChildren: Określa, czy obecny użytkownik może usuwać podfoldery tego folderu.
  • capabilities/canMoveChildrenOutOfDrive: czy bieżący użytkownik może przenosić elementy podrzędne tego folderu poza dysk współdzielony.
  • capabilities/canMoveChildrenWithinDrive: czy bieżący użytkownik może przenosić elementy podrzędne tego folderu na dysku współdzielonym.
  • capabilities/canMoveItemWithinDrive: czy bieżący użytkownik może przenieść ten element dysku współdzielonego w obrębie dysku współdzielonego.
  • capabilities/canReadDrive: Czy bieżący użytkownik ma uprawnienia do odczytu dysku współdzielonego, do którego należy ten plik.
  • capabilities/canTrashChildren: Określa, czy bieżący użytkownik może przenieść do kosza elementy podrzędne tego folderu.
  • driveId: identyfikator dysku współdzielonego, na którym znajduje się plik.
  • trashingUser: jeśli plik został wyraźnie przeniesiony do kosza, użytkownik, który to zrobił.
  • trashedTime: czas przeniesienia elementu do kosza. Jeśli używasz starszej wersji interfejsu Drive API v2, to pole nazywa się trashedDate.

W przypadku plików znajdujących się na dysku współdzielonym nie są wypełniane te pola:

  • permissions: Ze względu na potencjalny rozmiar list kontroli dostępu (ACL) do dysków współdzielonych uprawnienia nie są zwracane jako część plików. Użyj metody permissions.list, która obsługuje stronicowanie, aby wyświetlić listę uprawnień do pliku na dysku współdzielonym lub w folderze dysku współdzielonego.
  • owners, ownerNames, ownedByMe: pliki na dysku współdzielonym są własnością dysku współdzielonego, a nie poszczególnych użytkowników.
  • folderColorRgb: Nie można kolorować poszczególnych folderów.
  • shared: Wszystkie elementy na dysku współdzielonym są udostępniane.
  • writersCanShare: nie można ograniczyć udostępniania według roli na dyskach współdzielonych.

Poniższe pola są ustawiane tylko wtedy, gdy użytkownik ma uprawnienia dostępu do pliku w przypadku danego elementu:

  • sharedWithMeDate
  • sharingUser

Jeśli używasz dysków współdzielonych, zwróć szczególną uwagę na te pola:

  • parents.isRoot: to pole ma wartość „true” tylko w przypadku folderu głównego Mojego dysku, a w przypadku folderu najwyższego poziomu na dysku współdzielonym ma wartość „false”.
  • parents: rodzic nie pojawia się na liście rodziców, jeśli użytkownik wysyłający żądanie nie jest członkiem dysku współdzielonego i nie ma dostępu do rodzica. Dodatkowo, z wyjątkiem folderu najwyższego poziomu, lista elementów nadrzędnych musi zawierać dokładnie 1 element, jeśli plik znajduje się na dysku współdzielonym.

  • capabilities/canRemoveChildren: użyj capabilities/canDeleteChildren lub capabilities/canTrashChildren.

Zmień zasób

W zasobie changes dysku współdzielonego są dostępne te nowe pola:

  • changeType: typ zmiany. Możliwe wartości to file i drive.
  • driveId: identyfikator dysku współdzielonego powiązanego z tą zmianą.
  • drive: zaktualizowany stan dysku współdzielonego. Występuje, jeśli changeType ma wartość drive, a użytkownik nadal jest użytkownikiem dysku współdzielonego.

W przypadku aplikacji, które muszą synchronizować treści z dyskami współdzielonymi lub śledzić aktywność, mogą być wymagane dodatkowe zmiany. Więcej informacji znajdziesz w artykule Śledzenie zmian użytkowników i dysków współdzielonych.