我正在寻找将大文件 (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/