node.js - 通过 Node/Express 服务器将大文件 (2GB+) 流式传输到 Google Cloud Storage 存储桶

标签 node.js express file-upload google-cloud-storage large-files

我正在寻找将大文件 (1GB+) 从我的应用程序客户端上传到我的 Google Cloud Storage 存储桶的最佳方式(或一种方式)。

存储桶是私有(private)的,我目前正在尝试将文件发送到我的 Node/快速服务器并将其流式传输到我的 GCS 存储桶。我认为由于服务器上的文件大小限制,我遇到了问题。适用于较小的文件,但我用来测试它的 1GB 文件无法通过。

这些是我正在探索的替代方法:

  • 文件拆分客户端,然后在发送到 GCS 之前重组服务器端
  • 通过 Google IAM API(GCS 写入权限)创建一个临时服务帐户,将其发送给客户端以便能够上传文件,在确认上传后删除帐户(不理想,因为它公开了服务帐户)
  • ???

此时只是希望找到正确的方向。

最佳答案

最直接的传输是从客户端直接传输到 GCS。您可能希望向客户发送一个签名 URL,他们将使用该 URL 开始并执行上传。您可能希望使用可恢复的上传,除非您希望您的客户拥有足够快的互联网而无需费心。

让客户端上传到某个暂存 GCS 存储桶然后通知您的应用上传已完成可能是个好主意,此时您的应用会将其复制到最终存储桶(这是一个即时操作,如果对象位于相同的区域和存储类中),尽管这不是必需的。

除非您想以某种方式转换它或想透明地使用多个云提供商,否则我可能会尽量避免通过您的应用流式传输数据。

创建一次性服务帐户可能不是一个好主意。我不确定这些限制是什么,但你可能会遇到扩大规模的问题。

关于node.js - 通过 Node/Express 服务器将大文件 (2GB+) 流式传输到 Google Cloud Storage 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47519931/

相关文章:

node.js - 无法在快速中间件中获取请求参数

javascript - MEAN 应用程序通过 API 调用在应用程序加载时使用 node-cron 设置 cron 作业

node.js - Mongoose 具有正则表达式和限制的不同查询?

node.js - 网络包 `the request of a dependency is an expression`

javascript - NodeJs 中的过期 key

php - 从android设备上传文件到php服务器

asp.net-mvc - asp.net mvc 文件上传作为 null 传递给 View 模型

python - 如何使用 FastAPI UploadFile 将多类型/表单数据保存到 Python 中的硬文件中?

node.js - Elastic Beanstalk : How to write files to a folder in my node. js项目文件夹

node.js - RxJS:在 NodeJS 中处理 groupBy 和 Observable.fromEvents