【发布时间】:2017-09-15 06:21:07
【问题描述】:
我已经实现了 javascript 代码以将多个文件块上传到谷歌云存储。
以下是我执行上传文件的流程: 1. 用户使用 javascript 客户端网络应用程序选择要上传的文件{请求来自亚洲地区} 2. 在 NODEJS {hosted in google cloud's compute engine - US region} 中实现对我们应用服务器的 javascript 客户端应用请求,以允许文件上传 {授权} 2、Nodejs App服务器返回一个signedurl给客户端app 3. 客户端应用程序开始使用该签名的 url 将文件以多个块上传到谷歌存储 4.上传成功的客户端报告到应用服务器
我能够以多个块上传文件,但我观察到,如果我在谷歌云美国地区托管 nodejs 应用服务器而不是托管在我正在执行的同一台机器上,上传速度会慢 2-3 倍客户端应用请求
如果您有提高上传性能的解决方案,请告诉我。
google cloud signed-url documentation 中提到了一些解决方法:
可恢复上传被固定在它们开始的区域。例如, 如果您在美国创建可恢复的上传 URL 并将其提供给客户 在亚洲,上传仍然通过美国。执行可恢复 在未启动的区域上传可能会导致上传缓慢。 为避免这种情况,您可以构建初始 POST 请求并 由服务器签名,然后将签名的 URL 提供给客户端,以便 上传是从他们的位置开始的。一旦启动, 客户端可以正常使用生成的会话 URI 来发出 PUT 请求 不需要签名。
但是有了那个参考:
- 我找不到任何代码示例:一旦客户端收到签名 来自服务器的 url 如何构造初始 JSON API 调用??
- 在第一次通话中应该有什么反应?以及如何提取 会话 URI
- 如何使用会话 URI 上传更多块?
【问题讨论】:
标签: javascript google-cloud-storage google-api-nodejs-client pre-signed-url