共享云端硬盘与 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:此字段仅适用于“我的云端硬盘”根文件夹;对于共享云端硬盘顶级文件夹,此字段为 false。
  • parents:如果请求访问的用户不是共享云端硬盘的成员,并且没有对父级文件夹的访问权限,则父级文件夹不会显示在父级文件夹列表中。此外,如果文件位于共享云端硬盘中,则父级列表(顶级文件夹除外)必须包含恰好一个项目。

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

权限资源

Permission 资源中的 permissionDetails 字段仅会针对位于共享云端硬盘中的文件进行填充。此字段是此共享云端硬盘文件当前拥有或继承的简要权限列表。此字段是仅输出的字段,仅适用于共享云端硬盘内容。此外,

  • 定义了两个新角色:organizerfileOrganizer
  • permissions.list() 方法支持分页。

更改资源

共享云端硬盘的 Change 资源中提供了以下新字段:

  • changeType:更改类型。可能的值有 filedrive
  • driveId:与此更改关联的共享云端硬盘的 ID。
  • drive:共享云端硬盘的更新状态。如果 changeTypedrive 且用户仍是共享云端硬盘的成员,则显示此字段。

对于需要与共享云端硬盘同步内容或跟踪活动的应用,可能需要进行其他更改。有关详情,请参阅跟踪用户和共享云端硬盘的更改