如何在Nodejs中批量google驱动器调用

时间:2017-09-13 14:56:27

标签: node.js google-drive-api

我正在考虑批量处理我对Google云端硬盘的请求。 Google Drive API提供了如何在Nodejs中批量处理请求的示例。然而,它使用异步并查找该方法告诉我它一次执行一个,我不知道它是如何能够批量我的请求。

Batching Google API calls可用。代码示例如下。

var fileId = '1sTWaJ_j7PkjzaBWtNc3IzovK5hQf21FbOw9yLeeLPNQ';
var permissions = [
  {
    'type': 'user',
    'role': 'writer',
    'emailAddress': 'user@example.com'
  }, {
    'type': 'domain',
    'role': 'writer',
    'domain': 'example.com'
  }
];
// Using the NPM module 'async'
async.eachSeries(permissions, function (permission, permissionCallback) {
  drive.permissions.create({
    resource: permission,
    fileId: fileId,
    fields: 'id',
  }, function (err, res) {
    if (err) {
      // Handle error...
      console.error(err);
      permissionCallback(err);
    } else {
      console.log('Permission ID: ', res.id)
      permissionCallback();
    }
  });
}, function (err) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    // All permissions inserted
  }
});

1 个答案:

答案 0 :(得分:0)

TL; DR - 你不能。

查看他们的文档和其他示例,每个其他语言都有一个“批处理对象”,可以添加单个请求。在他们的节点示例中没有类似的东西。他们的Javascript client有一个.newBatch()电话。

签出他们的NodeJS Migration Guide(也是从v2 api链接的)。相关报价:

  

批次请求在1.0之前是实验性的。由于不受欢迎和不稳定,我们已经删除了对1.0中批量请求的支持。

旁注,批量处理似乎只会为您带来带宽 - Google API仍然会针对您的配额单独计算每个请求。