4

我想将最大 1GB 的文件上传到 Google Cloud Storage。我正在使用灵活的 Google App Engine。据我了解,GAE 对文件上传有 32MB 的限制,这意味着我必须直接上传到 GCS 或将文件分成块。

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

在进行了一些搜索之后,似乎使用签名的 url 直接上传到 GCS 可能是最好的选择,但我无法找到任何关于如何执行此操作的示例代码。这是最好的方法吗?是否有任何示例说明如何将 App Engine 与 Node.js 结合使用?

4

1 回答 1

5

您最好的选择是使用 Node.js 的 Cloud Storage 客户端库来创建可恢复的上传

下面是关于如何创建会话 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];
});

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

于 2019-12-11T13:51:15.573 回答