Google Drive Rest API - 创建文件 - 配额

时间:2017-10-11 20:55:03

标签: google-drive-api

我有一个程序,我必须将大约500,000个文件复制到谷歌驱动器上到不同的文件夹。我使用谷歌驱动器v3 nodejs api。我每秒发出大约2次上传(每450毫秒)。过了一会儿,我从API挂起ECONNRESET或socket。

当我查看console.cloud.google.com上的配额时。我的配额远不及我。为什么会失败?

对于踢,我尝试了谷歌文件流,并且在我的用户帐户下推入驱动器没有问题。它的速度提高了约5倍。

有没有人遇到过这个问题?

2 个答案:

答案 0 :(得分:0)

我认为你的配额本身不是问题所在。当您在短时间内写入太多数据时会发生这种情况。尝试减慢速度并尝试在不同的用户帐户之间对请求进行分片。这应该有助于解决您正在执行的许多请求。另外,不要忘记为4xx错误重试实施exponential backoff。我的两分钱。

答案 1 :(得分:0)

当我调用传递流时会发生这种情况。在developers.google.com中没有任何警告,但在github repository处有警告。

  

您还可以通过将media.body指定为可读流来上传媒体。这可以允许您上传无法放入内存的非常大的文件。

     

注意:您的可读流可能不稳定。使用风险自负。

一旦我更改了它不使用流,我就开始收到正确的错误消息,例如状态代码403,超过了你的速率限制。

我只是将我的代码更改为使用直接缓冲区。在调用之前,通过fs.readFileSync读取缓冲区。

media: {
  mimeType: 'text/plain',
  body: buf
}