【问题标题】:Is it possible to have a single Google drive account where many users can upload files to from an application?是否可以拥有一个 Google Drive 帐户,许多用户可以将文件从应用程序上传到该帐户?
【发布时间】:2014-12-09 09:40:11
【问题描述】:

假设我拥有“mainAccount@gmail.com”。现在我创建了一个应用程序(不使用服务帐户),它使用一次授权来获取刷新令牌。然后它将刷新令牌存储在数据库中。

接下来我让其他用户(例如匿名访问者)使用我的应用程序将文件上传到我的谷歌驱动器存储。每次用户要上传时,存储的刷新令牌都会用于获取访问令牌(以授权未经身份验证或什至可能没有 gmail 帐户的用户的上传)。

我很好奇 Drive API 如何解释这种请求?特别是当有数百个用户上传文件时。我会遇到任何配额限制吗?我假设 API 认为 1 个 gmail 帐户 = 1 个用户,而不是 100 个或更多用户。

【问题讨论】:

  • 只是好奇,你有什么方法愿意分享你是如何做到这一点的。我也在想办法做到这一点。

标签: javascript google-drive-api


【解决方案1】:

配额限制基于发送的请求数,而不是针对哪个帐户或哪个刷新令牌正在发送。

我认为可能会给您带来问题的唯一配额是每秒请求数配额。如果您不设置配额用户,则允许 100 个请求/秒,这是由 IP 地址设置的。因此,如果这是通过您的网站运行的,那么您每秒只能发送 100 个请求。如果你随机配额用户。 (不,我不确定如何在 JavaScript 中发送配额用户,您需要查看它)这将消除此问题。

+1 因为我是第一个知道如何解决 JavaScript 无服务帐户问题的人 :)

【讨论】:

  • 向请求添加一个随机的 quotaUser 参数就可以了。不再受到任何限制。
  • 我也是这样做的 ;)
【解决方案2】:

从概念上讲,这与您登录多台 PC 或拥有一个表示网络应用程序和多个设备之间同步的应用程序没有什么不同。

配额问题没有明确定义,因此您是否会达到每用户配额,甚至是未记录的存储桶配额,有点猜测。前者可以按要求增加,后者不能。

如果您确实达到了限制,您有两个级别的解决方法:-

  1. 在您的项目中创建多个应用,并以某种方式从多个存储的刷新令牌中分配或循环访问令牌
  2. 更进一步,创建多个项目。这当然会产生可能的权限/共享问题,因此您要么需要拥有 Drive 范围(如果这是通用 Drive 帐户,这是一个坏主意),或者确保每个用户始终绑定到相同的刷新令牌。李>

顺便说一句,您了解多个用户能够使用访问令牌访问彼此文件的潜在安全问题吗?

【讨论】:

    【解决方案3】:

    我认为 Google 会在开发者控制台中看到来自您注册的应用程序的所有请求,而不是来自任何用户。目标云端硬盘帐户只是文件的目标位置。

    正如您所描述的那样,这是可能的。使用存储在某处的刷新令牌获取访问令牌,并将具有该访问令牌的文件从任何地方的任何用户上传到单个驱动器。

    配额限制非常大,在您达到配额之前,单个云端硬盘文件夹就会被填满。

    【讨论】:

    • 我一般同意,但是令牌桶配额确实很小,根据我的经验,大约 30。我很确定这个配额以某种方式与会话相关联,但不能确定。如果它与用户、客户端 ID 或项目相关联,则可能是一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2011-12-08
    • 2012-08-15
    • 2019-12-14
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    相关资源
    最近更新 更多