Google Docs API:图像插入失败,出现速率限制错误

问题描述

我使用Java Google Drive API上传包含约100张图片的文本组成的文档。我产生这样的请求:

List<Request> requests = new ArrayList<>();
for (...) {
   requests.add(new Request().setInsertText(...));
   requests.add(new Request().setInsertInlineImage(...));
}
BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
BatchUpdateDocumentResponse response = service.documents().batchUpdate(id,body).execute();

这已经运行了好一阵子了。但是,从今天开始,该工具将失败并

com.google.api.client.googleapis.json.GoogleJsonResponseException: 429 Too Many Requests
{
  "code" : 429,"errors" : [ {
    "domain" : "global","message" : "Resource has been exhausted (e.g. check quota).","reason" : "rateLimitExceeded"
  } ],"status" : "RESOURCE_EXHAUSTED"
}

配额页面显示我在写请求的配额内。确实,如果我不包括图像,则可以编写其他文档。但是,一旦添加单个图像,请求就会失败。

某处是否有隐藏的配额?有更好的方法吗?

解决方法

问题出在当时正在使用的文档中,尝试制作一个新文档,然后使用新的文档ID再次运行批处理更新。这样可以解决图像插入失败的问题。