如何列出 Google 未与组织共享的云端硬盘文件

How to list Google Drive files not shared with the organisation

我正在尝试检索由我组织内的用户创建的所有 Google 云端硬盘文件(设置了全域委派和 drive 角色)。

srv.Files.List().Corpora("domain").Fields("*").Q(modifiedTime).PageSize(1000).Pages(d.ctx, listFiles)

尽管这样调用的结果,只有 returns 在共享设置中具有 “[公司] 中的人可以搜索此文件” 的文件, 切换。

如果我模拟不同的用户并将 Corpora("domain") 更改为 Corpora("user") 我可以列出所有文件,但如果我有成千上万的用户,那不是最佳选择。

如何列出我组织下的所有文件,包括那些未共享的文件?

域范围委托的工作方式是它允许服务帐户模拟或像单个用户一样行事。服务帐户不只是获得对每个人数据的写入权限。

这是由于 APIS 工作方式的限制。对 api 的每个请求都必须包含授权 header,其中包含授予对单个用户数据的访问权限的访问令牌。如果您想访问 John 的数据,那么您需要 John 的访问令牌,这不会让您访问 John 和 Janes 的数据。

因此,要使服务帐户正常工作,您需要能够委托给 John,然后发送另一个请求委托给 Jane 以访问她的数据。

这可能不是您应用程序的最佳选择,但它是如何工作的。您将需要一次委托给每个用户。