对象存储上传咨询

springboot前后端分离,前端选择文件后调用后端上传接口,再把文件上传到对象存储,上传进度是在前端做吗?后端调用上传对象存储是用异步吗?目前测试同步上传的话,如果是大文件,前端上传到后端上传完了,但是因为还得上传到对象存储、所以还得等一会请求才能结束。这种如何处理比较好呢?

阅读 1.6k
1 个回答

Web 端直传给云存储就好了,不需要走一遍自己服务器,浪费那带宽干啥。

据我所知的云存储服务的文件上传接口都是 FormData 格式的,你后端接口要返回的其实就几个数据:

  • 要上传文件的实际 URL,通常来说是预签名好的,客户端只管往这个地址上 POST 就好了。
  • FormData 里 File 对象所在子项的 Key 是什么(就是 formData.append() 的第一个参数)。
  • FormData 里还需要其他的额外参数(如果有的话)。
  • 请求标头(Headers)里还需要其他的额外参数(如果有的话)。

前端通过后端接口拿上述几个数据,然后拼装成一个 AJAX 直接上传到云存储上就可以了。

结合我之前回答过你的问题,如果要换云存储,后台改配置就好了,对于前端来说是无感知的。

P.S. 除非有一种情况下才需要服务器中转,那就是你的业务系统对文件传输的安全性要求极高,不希望客户端能绕开你直接与云存储服务通信。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题