使用 Google App Engine 将大文件上传到 Google Cloud Storage

Ray*_*ond 4 node.js google-cloud-storage google-appengine-node

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

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

经过一些搜索后,似乎使用签名网址直接上传到 GCS 可能是最好的选择,但我无法找到有关如何执行此操作的任何示例代码。这是最好的方法吗?是否有任何示例说明如何使用 App Engine 和 Node.js 来实现此目的?

Chr*_*r P 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];
});
Run Code Online (Sandbox Code Playgroud)

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