Google Drive API请求限制

时间:2014-09-09 12:15:06

标签: javascript google-api google-drive-api quota

我要求支持或特殊知识。

在我的应用中我正在使用Google云端硬盘并需要插入/删除1000多个文件的权限。 Google API不允许我在一个请求中设置多个文件的权限,因此我需要发出1000多个请求(或将其包装成批量或少量批次)。

我的要求如下:

POST /drive/v2/files/0B18tlN6SgYRaUzl1MUlnNHlGSEE/permissions?sendNotificationEmails=false&quotaUser=00787465305247954313&alt=json

但是当我试图向Google Drive API发出批量请求时,我得到了批量回复,其中包含很多错误响应。批量的第一批回复很少,但不是全部。

大多数错误的回答都是这样的:

Content-Type: application/http
Content-ID: <response-280781395>

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=UTF-8
Date: Tue, 09 Sep 2014 11:45:03 GMT
Expires: Tue, 09 Sep 2014 11:45:03 GMT
Cache-Control: private, max-age=0
Content-Length: 199

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

其中一些看起来像这样:

HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=UTF-8
Date: Tue, 09 Sep 2014 11:45:03 GMT
Expires: Tue, 09 Sep 2014 11:45:03 GMT
Cache-Control: private, max-age=0
Content-Length: 180

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "internalError",
    "message": "Internal Error"
   }
  ],
  "code": 500,
  "message": "Internal Error"
 }
}

批次中的最后几个回复看起来像这样:

Content-Type: application/http
Content-ID: <response-901482964>

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=UTF-8
Date: Tue, 09 Sep 2014 11:45:03 GMT
Expires: Tue, 09 Sep 2014 11:45:03 GMT
Cache-Control: private, max-age=0
Content-Length: 171

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

当我遇到配额限制错误并决定在Google云端硬盘控制台中增加请求/用户/秒配额时,有什么奇怪的。它被设置为 10000 / user / second 。但我只批量发送 1000 请求,但已经超过了 403限速&#34;错误。然后我开始得到&#34; 500内部错误&#34;错误。

然后我发现我应该设置&#39; quotaUser &#39;请求的参数,但没有任何改变。我仍然会遇到这些错误。

Google云端硬盘网络界面中的调查向我展示了如果决定共享1000多个文件,Google云端硬盘如何设置文件权限。在我共享所有文件之前,我花了大约20-30分钟。在“活动”面板中,我看到了以串联方式共享的文件。有时这些束是1个文件大小,其他40个文件大小。但最终共享了所有文件,看起来像Google云端硬盘团队使用重试队列或只是没有为自己的请求设置配额。

主要问题是:

  • 为什么我仍然会收到这些配额错误(指定10000 Google云端控制台中的请求/用户/秒限制以及如何避免 他们?
  • 为什么Google Drive API会返回&#34; 500内部错误&#34;和&#34; 400 错误的请求&#34;错误?
  • 为此做任何变通办法吗?

P.S。:我对Google Drive团队感兴趣,我可以提供完整的跟踪和代码示例。

1 个答案:

答案 0 :(得分:1)

虽然您可以设置每用户QPS以防止恶意用户使用您的配额,但将其设置为任意高的数字并不意味着您将能够提出这么多请求。每个应用程序的QPS限制也会启动。默认值远低于1000qps。

如果您需要额外的配额,请通过开发者控制台请求。