Google云端硬盘SA帐户无法访问其他用户创建的共享磁盘上的对象

问题描述

我想访问其他用户使用SA帐户在共享磁盘上创建的对象。

通过以下查询呼叫https://www.googleapis.com/drive/v3/files,我发现了这一点:

q=mimeType!='application/vnd.google-apps.folder' and 'GOOGLE_DRIVE_FOLDER_ID' in parents and trashed=false&supportsTeamDrives=true&teamDriveId=GOOGLE_TEAM_DRIVE_ID&fields=files(id,name,webViewLink,webContentLink)

根据帐户,我得到不同的结果。如果我使用为服务帐户生成的访问令牌,则与使用用户帐户生成的访问令牌的结果不同。 服务帐户仅“看到”由该特定服务帐户创建的文件,而普通用户也“看到”由其他用户创建的所有文件

有人遇到类似的问题,知道任何解决方案或解决方法吗?

解决方法

根据帐户,我得到不同的结果。如果我使用为服务帐户生成的访问令牌,则得到的结果与使用用户帐户生成的访问令牌的结果不同。

您需要了解的是,您只能看到您有权查看的文件。如果您使用普通用户帐户登录,则将只能看到您拥有或有权访问的文件。服务帐户也是如此,将服务帐户视为虚拟用户。该服务帐户只能看到已被授予访问权限的文件。

假设您正在谈论的共享磁盘是gsuite,则可以让gsuite管理员在服务帐户上设置域范围的委派,并授予它对域中文件的访问权限。

权限

如果您没有gsuite或不想授予服务帐户对域的完全访问权限。您可能还想尝试让驱动器的所有者运行permissions.create并添加服务帐户。