通过 Node/Express 服务器将大文件 (2GB+) 流式传输到 Google Cloud Storage 存储桶
Streaming large files (2GB+) to Google Cloud Storage bucket by way of Node/Express server
我正在寻找将大文件 (1GB+) 从我的应用程序客户端上传到我的 Google 云存储桶的最佳方式。
存储桶是私有的,我目前正在尝试将文件发送到我的 node/express 服务器并将其流式传输到我的 GCS 存储桶。我认为由于服务器上的文件大小限制,我 运行 遇到了问题。适用于较小的文件,但我用来测试它的 1GB 文件无法通过。
这些是我正在探索的替代方法:
- 文件拆分客户端,然后在发送到 GCS 之前重组服务器端
- 通过Google IAM API(GCS写入权限)创建一个临时服务账户,将其发送给客户端以便能够上传文件,上传确认后删除账户(不理想因为它公开了服务帐户)
- ???
此时只是想找到正确的方向。
最直接的传输是从客户端直接传输到 GCS。您可能想向客户发送一个签名的 URL,他们将使用它来开始并执行上传。您可能希望使用可恢复的上传,除非您希望您的客户拥有足够快的互联网而无需费心。
最好让客户端上传到一些暂存 GCS 存储桶,然后通知您的应用上传已完成,此时您的应用会将其复制到最终存储桶(即刻如果对象位于同一区域和存储 class 中,则操作),尽管这不是必需的。
除非您想以某种方式转换它或想透明地使用多个云提供商,否则我可能会尽量避免通过您的应用流式传输数据。
创建一次性服务帐户可能不是一个好主意。我不确定这些限制是什么,但你可能 运行 遇到扩大规模的问题。
我正在寻找将大文件 (1GB+) 从我的应用程序客户端上传到我的 Google 云存储桶的最佳方式。
存储桶是私有的,我目前正在尝试将文件发送到我的 node/express 服务器并将其流式传输到我的 GCS 存储桶。我认为由于服务器上的文件大小限制,我 运行 遇到了问题。适用于较小的文件,但我用来测试它的 1GB 文件无法通过。
这些是我正在探索的替代方法:
- 文件拆分客户端,然后在发送到 GCS 之前重组服务器端
- 通过Google IAM API(GCS写入权限)创建一个临时服务账户,将其发送给客户端以便能够上传文件,上传确认后删除账户(不理想因为它公开了服务帐户)
- ???
此时只是想找到正确的方向。
最直接的传输是从客户端直接传输到 GCS。您可能想向客户发送一个签名的 URL,他们将使用它来开始并执行上传。您可能希望使用可恢复的上传,除非您希望您的客户拥有足够快的互联网而无需费心。
最好让客户端上传到一些暂存 GCS 存储桶,然后通知您的应用上传已完成,此时您的应用会将其复制到最终存储桶(即刻如果对象位于同一区域和存储 class 中,则操作),尽管这不是必需的。
除非您想以某种方式转换它或想透明地使用多个云提供商,否则我可能会尽量避免通过您的应用流式传输数据。
创建一次性服务帐户可能不是一个好主意。我不确定这些限制是什么,但你可能 运行 遇到扩大规模的问题。