我要求支持或特殊知识。
在我的应用中我正在使用Google云端硬盘并需要插入/删除1000多个文件的权限。 Google API不允许我在一个请求中设置多个文件的权限,因此我需要发出1000多个请求(或将其包装成批量或少量批次)。
我的要求如下:
POST /drive/v2/files/0B18tlN6SgYRaUzl1MUlnNHlGSEE/permissions?sendNotificationEmails=false"aUser=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云端硬盘团队使用重试队列或只是没有为自己的请求设置配额。
主要问题是:
P.S。:我对Google Drive团队感兴趣,我可以提供完整的跟踪和代码示例。
答案 0 :(得分:1)
虽然您可以设置每用户QPS以防止恶意用户使用您的配额,但将其设置为任意高的数字并不意味着您将能够提出这么多请求。每个应用程序的QPS限制也会启动。默认值远低于1000qps。
如果您需要额外的配额,请通过开发者控制台请求。