我已经实现了 javascript 代码以将多个块中的文件上传到谷歌云存储。
以下是我执行上传文件的流程: 1. 用户使用 javascript 客户端 Web 应用程序选择要上传的文件 {请求来自亚洲地区} 2. javascript 客户端应用程序请求到我们在 NODEJS 中实现的应用程序服务器 {托管在谷歌云的计算引擎中- 美国地区} 允许文件上传 {authorization} 2. Nodejs 应用服务器向客户端应用返回一个签名 URL 3. 客户端应用开始使用该签名 url 将文件以多个块上传到谷歌存储 4. 将成功的客户端报告上传到应用服务器
我能够以多个块上传文件,但我观察到,如果我在谷歌云美国区域托管 nodejs 应用程序服务器而不是托管在执行客户端应用程序请求的同一台机器上,上传速度会慢 2-3 倍
如果您有解决方案如何提高上传性能,请告诉我。
google cloud signed-url 文档中提到了一些解决方法:
可续传上传被固定在它们开始的区域。例如,如果您在美国创建可续传上传 URL 并将其提供给亚洲的客户,则上传仍会通过美国。在未启动的区域执行可恢复上传可能会导致上传缓慢。为避免这种情况,您可以让服务器构造和签名初始 POST 请求,然后将签名的 URL 提供给客户端,以便从其位置启动上传。一旦启动,客户端可以正常使用生成的会话 URI 来发出不需要签名的 PUT 请求。
但是有了那个参考:
- 我找不到任何代码示例:一旦客户端从服务器收到签名的 url,如何构造初始 JSON API 调用?
- 第一次通话应该有什么反应?以及如何提取会话 URI
- 如何使用会话 URI 上传更多块?