【问题标题】:How to list Google Drive files not shared with the organisation如何列出未与组织共享的 Google Drive 文件
【发布时间】:2021-03-30 09:47:38
【问题描述】:

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

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

虽然这种调用的结果,只返回共享设置中有“[COMPANY] 中的人可以搜索此文件”的文件,已切换。

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

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

【问题讨论】:

    标签: go google-api google-drive-api service-accounts google-api-go-client


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您澄清这一点。现在我明白了它是如何工作的,那么我将遵循这种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    相关资源
    最近更新 更多