go - 如何列出未与组织共享的 Google Drive 文件
问题描述
我正在尝试检索由我的组织内的用户创建的所有 Google Drive 文件(设置了域范围的委派和驱动器角色)。
srv.Files.List().Corpora("domain").Fields("*").Q(modifiedTime).PageSize(1000).Pages(d.ctx, listFiles)
尽管此类调用的结果仅返回共享设置中具有“[公司] 中的人员可以搜索此文件”的文件,但已切换。
如果我冒充其他用户并将其更改Corpora("domain")
为Corpora("user")
我可以列出所有文件,但如果我有成千上万的用户,那并不是最佳选择。
如何列出我的组织下的所有文件,包括那些未共享的文件?
解决方案
域范围委派的工作方式是允许服务帐户模拟或充当单个用户。服务帐户不只是获得对每个人数据的写入权限。
这是由于 APIS 工作方式的限制。对 api 的每个请求都必须包含一个授权标头,该标头包含一个访问令牌,授予对单个用户数据的访问权限。如果您想访问 John 的数据,那么您需要 John 的访问令牌,这不会让您访问 John 和 Janes 的数据。
因此,要使服务帐户正常工作,您需要能够委托给 John,然后发送另一个委托给 Jane 以访问她的数据的请求。
这可能不是您的应用程序的最佳选择,但它是如何工作的。您需要一次向每个用户委派一个。
推荐阅读
- google-cloud-platform - 将 VPC 连接到 Cloud SQL
- haskell - 一种在没有类型运算符的情况下模拟联合类型的方法
- json - 如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略
- docker - 将本地数据目录挂载到 jupyterhub
- javascript - 如何在ajax成功时弹出(打开)引导模式
- google-sheets - 如何翻译 ARRAYFORMULA 中的 COUNTIFS 公式以自动在每一行中插入公式
- jpa - 为可为空的外键字段获取“对象引用未保存的瞬态实例”而不是“外键约束异常”
- java - import class priority in scala vs java
- mysql - 在获取特定列中某些列的组的最大值后,如何为列赋予条件?
- reactjs - 使用 Hapi 反应路由