共享云端硬盘与 My Drive API 的差异

共享云端硬盘的组织、共享和所有权模式与“我的云端硬盘”不同。因此,某些“我的云端硬盘”操作不允许用于共享云端硬盘中的内容。

本指南概述了 fileschanges 资源中特定于共享云端硬盘的 API 差异。

文件资源

只有当文件位于共享云端硬盘中时,才会填充 files 资源中的 以下字段:

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

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

更改资源

对于共享云端硬盘, changes 资源中提供了以下新字段:

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

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