管理员如何访问特定域中所有用户的Google云端硬盘内容?

时间:2016-06-02 22:05:10

标签: google-admin-sdk

我正在开发一个工具,使用由管理员运行的Admin SDK自动将Google云端硬盘文档的所有权从一个用户转移到另一个用户。我使用数据传输API进行所有权转移。我想通过检查转移前后的Google云端硬盘文档的大小/数量来验证转移,管理员帐户必须能够访问域中所有用户的Google云端硬盘内容。有没有办法做到这一点?或者有更好的方法来验证数据传输吗?

我尝试通过将“密钥”设置为目标用户帐户来使用Drive API服务进行验证。到目前为止,我对Drive API的所有尝试都检索了管理员的云端硬盘内容。

1 个答案:

答案 0 :(得分:4)

Files.list将检索所有用户的文件,在这种情况下,它将获取您自己的所有文件。为了使该查询起作用,仅当该用户也是您的一个文件的所有者时。

HTTP请求

GET https://www.googleapis.com/drive/v2/files

即使作为管理员,您也无法直接访问用户文件。

要访问其他用户的文件,作为管理员,您需要模拟用户,然后代表他们执行操作。

这是通过使用具有域范围授权的service account来实现的。

通常,当应用程序使用Google API处理自己的数据而不是用户的数据时,应用程序会使用服务帐户。例如,使用Google Cloud Datastore进行数据持久性的应用程序将使用服务帐户验证其对Google Cloud Datastore API的调用。

Google Apps域管理员还可以授予服务帐户域范围的权限,以代表域中的用户访问用户数据。

以下是相关的SO票证,讨论了转移用户文件的最有效流程:Most efficient process for transferring ownership of all of a user's files using the Google Drive API