共用雲端硬碟與 My Drive API 的差異

共用雲端硬碟採用與「我的雲端硬碟」不同的組織、共用和擁有權模式。因此,共用雲端硬碟中的內容無法執行部分「我的雲端硬碟」作業。本文將概述共用驅動器專屬 API 的差異。

檔案資源

File 資源中的下列欄位,只會針對位於共用雲端硬碟中的檔案填入:

  • hasAugmentedPermissions:是否有任何使用者可直接存取此檔案。
  • capabilities/canAddFolderFromAnotherDrive:目前使用者是否可以將其他雲端硬碟 (其他共用雲端硬碟或「我的雲端硬碟」) 中的資料夾新增至這個資料夾。
  • capabilities/canDeleteChildren:目前使用者是否可以刪除此資料夾的子項。
  • capabilities/canMoveChildrenOutOfDrive:目前使用者是否可以將此資料夾的子資料夾移至共用雲端硬碟之外。
  • capabilities/canMoveChildrenWithinDrive:目前使用者是否可在共用雲端硬碟中移動這個資料夾的子資料夾。
  • capabilities/canMoveItemWithinDrive:目前使用者是否可以移動共用雲端硬碟中的共用雲端硬碟項目。
  • capabilities/canReadDrive:目前使用者是否對此檔案所屬的共用雲端硬碟擁有讀取權。
  • capabilities/canTrashChildren:目前使用者是否可以將此資料夾的子資料夾移至垃圾桶。
  • driveId:檔案所在的共用雲端硬碟 ID。
  • trashingUser:如果檔案已明確丟入垃圾桶,則為丟入垃圾桶的使用者。
  • trashedTime:項目遭到刪除的時間。如果您使用的是舊版 Drive API v2,這個欄位稱為 trashedDate

對於位於共用雲端硬碟中的檔案,系統不會填入下列欄位:

  • permissions:由於共用雲端硬碟 ACL 的大小可能會很大,因此系統不會將權限一併傳回。使用支援分頁的 permissions.list() 方法,列出共用雲端硬碟或共用雲端硬碟資料夾中檔案的權限。
  • ownersownerNamesownedByMe:共用雲端硬碟中的檔案歸共用雲端硬碟所有,而非個別使用者。
  • folderColorRgb:無法為個別資料夾著色。
  • shared:共用雲端硬碟中的所有項目都會共用。
  • writersCanShare:無法依角色限制共用雲端硬碟。

只有在使用者獲得項目的檔案存取權限時,系統才會設定下列欄位:

  • sharedWithMeDate
  • sharingUser

下列欄位與共用車輛搭配使用時,需要特別注意:

  • parents.isRoot:這個欄位只適用於「我的雲端硬碟」根目錄,不適用於共用雲端硬碟頂層資料夾。
  • parents:如果要求使用者不是共用雲端硬碟的成員,且沒有存取父項的權限,父項就不會顯示在父項清單中。此外,如果檔案位於共用雲端硬碟中,除了頂層資料夾外,父項清單中必須包含一個項目。

  • capabilities/canRemoveChildren:請使用 capabilities/canDeleteChildrencapabilities/canTrashChildren

權限資源

Permission 資源中的 permissionDetails 欄位只會為位於共用雲端硬碟中的檔案填入資料。這個欄位是一份精簡權限清單,這些權限是共用雲端硬碟檔案擁有或繼承的。這個欄位是僅輸出欄位,僅會顯示在共用雲端硬碟項目中。此外,

  • 已定義兩個新的角色 organizerfileOrganizer
  • permissions.list() 方法支援分頁。

變更資源

共用雲端硬碟的 Change 資源中提供下列新欄位:

  • changeType:變更類型。可能的值為 filedrive
  • driveId:與此變更相關聯的共用雲端硬碟 ID。
  • drive:共用雲端硬碟的更新狀態。如果 changeTypedrive,且使用者仍是共用雲端硬碟的成員,就會顯示這項資訊。

如果應用程式需要將內容同步至共用雲端硬碟或追蹤活動,可能需要進行其他變更。詳情請參閱「追蹤使用者和共用雲端硬碟的變更」。