【发布时间】:2020-05-02 04:26:20
【问题描述】:
我正在使用 google drive API 来获取几千个文档。我用来连接的凭据正在使用 setServiceAccount 和 setServiceAccountPrivateKey。
当我开始提出请求时 - 我会在短时间内收到以下信息:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "User Rate Limit Exceeded. Rate of requests for user exceed configured project quota. You may consider re-evaluating expected per-user traffic to the API and adjust project quota limits accordingly. You may monitor aggregate quota usage and adjust limits in the API Console: https://console.developers.google.com/apis/api/drive.googleapis.com/quotas?project=<projid>",
"reason" : "userRateLimitExceeded",
"extendedHelp" : "https://console.developers.google.com/apis/api/drive.googleapis.com/quotas?project=<projid>"
}
在几千个项目之后,我最终得到了这个错误:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"reason" : "dailyLimitExceededUnreg",
"extendedHelp" : "https://code.google.com/apis/console"
} ],
"message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
我访问了配额页面,我有以下值(UI 不允许我请求将这些配额提高到超出这些值 - 它们是允许的最大值):
Queries per day = 1,000,000,000
Queries per 100 seconds per user = 1,000
Queries per 100 seconds = 10,000
1) 是否可以将每个用户的查询配额增加到 10/秒以上?我可以请求更高的配额 10/秒吗?怎么样?
2) 为什么我会遇到 dailyLimitExceededUnreg 错误?我该如何避免呢?
一些sn-ps代码:
Credential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(serviceAccountId)
.setServiceAccountPrivateKey(gdrivePrivateKey)
.setServiceAccountScopes(ImmutableSet.of(DriveScopes.DRIVE,
DirectoryScopes.ADMIN_DIRECTORY_USER,
DirectoryScopes.ADMIN_DIRECTORY_GROUP))
.setServiceAccountUser(serviceAccount.getServiceAccountUser())
.build();
有时检索文件的属性:
File file = drive.files().get(itemid)
.setFields("id, name, createdTime, modifiedTime, size, webContentLink")
.execute();
或使用drive.files.export 或drive.files.get 之一获取文件
谢谢, 呵呵
【问题讨论】:
-
请包含您的代码
-
在上面的原始帖子中添加了一些 - 谢谢
标签: java google-drive-api google-api-java-client service-accounts