Node.js 使用Google App Engine将大型文件上载到Google云存储

Node.js 使用Google App Engine将大型文件上载到Google云存储,node.js,google-cloud-storage,google-appengine-node,Node.js,Google Cloud Storage,Google Appengine Node,我想上传文件高达1GB到谷歌云存储。我正在使用谷歌应用引擎。据我所知,GAE对文件上传有32MB的限制,这意味着我要么直接上传到GCS,要么将文件分成块 这是几年前的建议,建议使用Blobstore API,但是Node.js似乎没有选项,文档还建议使用GCS而不是Blobstore来存储文件 在做了一些搜索之后,似乎使用签名URL直接上传到GCS可能是最好的选择,但我很难找到任何关于如何做到这一点的示例代码。这是最好的方法吗?有没有关于如何使用App Engine和Node.js实现这一点的示

我想上传文件高达1GB到谷歌云存储。我正在使用谷歌应用引擎。据我所知,GAE对文件上传有32MB的限制,这意味着我要么直接上传到GCS,要么将文件分成块

这是几年前的建议,建议使用Blobstore API,但是Node.js似乎没有选项,文档还建议使用GCS而不是Blobstore来存储文件


在做了一些搜索之后,似乎使用签名URL直接上传到GCS可能是最好的选择,但我很难找到任何关于如何做到这一点的示例代码。这是最好的方法吗?有没有关于如何使用App Engine和Node.js实现这一点的示例?

您最好使用Node.js的云存储客户端库来创建一个应用程序

下面是关于如何创建会话URI的代码示例:

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const myBucket = storage.bucket('my-bucket');

const file = myBucket.file('my-file');
file.createResumableUpload(function(err, uri) {
  if (!err) {
    // `uri` can be used to PUT data to.
  }
});

//-
// If the callback is omitted, we'll return a Promise.
//-
file.createResumableUpload().then(function(data) {
  const uri = data[0];
});

编辑:现在你似乎可以使用这种方法执行上传,而不必担心URL的创建。

我认为这个库就是你要找的。你接下来如何处理URI?这在客户端如何工作?当你有URI时,你需要向它发出PUT请求我更新了答案,因为现在你似乎可以用createWriteStream方法绕过所有这些。