首页 > 解决方案 > 如何列出未与组织共享的 Google Drive 文件

问题描述

我正在尝试检索由我的组织内的用户创建的所有 Google Drive 文件(设置了域范围的委派和驱动器角色)。

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

尽管此类调用的结果仅返回共享设置中具有“[公司] 中的人员可以搜索此文件”的文件,但已切换。

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

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

标签: gogoogle-apigoogle-drive-apiservice-accountsgoogle-api-go-client

解决方案


域范围委派的工作方式是允许服务帐户模拟或充当单个用户。服务帐户不只是获得对每个人数据的写入权限。

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

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

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


推荐阅读