【问题标题】:How to Resolve a 403 error: User rate limit exceeded in Google Drive API?如何解决 403 错误:Google Drive API 中超出了用户速率限制?
【发布时间】:2021-09-29 16:13:12
【问题描述】:

我得到了

“代码”:403, "message": "超出用户速率限制"

在我的网络应用中使用 Google Drive API 时

虽然配额是每 100 秒 10,000 个请求,而我的平均值不到 2:

如何解决此错误?如文档所说,如何实现指数退避?

【问题讨论】:

    标签: google-api google-drive-api exponential-backoff


    【解决方案1】:

    Google api 有多种配额类型。

    基于项目的配额会影响您的项目本身。这些配额可以延长。例如,如果您的项目可以在 100 秒前发出 10000 个请求。你可以要求延长它。

    然后是基于用户的配额。这些配额限制了每个用户可以发送的数量。

    超出用户速率限制

    表示您正在达到用户费率配额。用户速率配额是洪水保护,它们确保您的应用程序的单个用户不能同时发出多个请求。

    这些配额不能延长。

    如果您获得用户速率限制配额,那么您需要减慢您的应用程序并实施指数退避。

    如何实现指数退避取决于您和您使用的语言,但它基本上只涉及再次重试相同的请求,只是在每次失败时增加等待时间

    图表

    谷歌云控制台中的图表是一个猜测,它绝不是准确的。如果您收到错误消息,您应该按照它而不是按照图表中的说明进行操作。

    【讨论】:

      【解决方案2】:

      经过数小时的搜索和思考,我发现, “超出用户速率限制”具有垃圾邮件保护功能,每秒最多允许 10 个请求。

      因此,我发现了一个懒惰的技巧,可以通过以下方式延迟调用:

      usleep(rand(1000000,2000000);
      

      它只是将呼叫延迟 1 到 2 秒之间的随机持续时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-13
        • 2019-11-01
        • 2013-07-20
        • 2016-11-14
        相关资源
        最近更新 更多