伪代码如下:
publicFileUploadResponse concurrentUpload(finalString fileName, finalString fileBase64){ // 首先进行分段intlimitSize = fileBase64.length() / 10; finalList segments = StringUtil.splitByLength(fileBase64, limitSize); // 并发上传intsize = segments.size(); finalConcurrentHashMap map= newConcurrentHashMap(); finalCountDownLatch lock = newCountDownLatch(size); for(inti = 0; i < segments.size(); i++) { finalintindex = i; Thread t = newThread() { publicvoidrun() { // 并发上传// countDownlock.countDown(); } }; t.start(); } // 等待完成lock.await(); // 针对上传后的信息处理}
直连当然,还有一种策略就是客户端直接访问服务端,跳过后端服务 。
文章插图
文章插图
文件直连
当然,这个前提要求文件服务必须提供 HTTP 文件上传接口 。
还需要考虑安全问题,最好是前端调用后端,获取授权 token,然后携带 token 进行文件上传 。
小结文件上传是非常常见的业务需求,上传的性能问题是肯定要考虑和优化的一个问题 。
上面的几种方法可以灵活的组合使用,结合自己的业务进行更好的实践 。
推荐阅读
- 电脑自带的截图快捷键有哪些 电脑上怎么截图按什么键
- win10自带的截图工具怎么用 win10截屏快捷键是哪个键
- NARS蜜粉怎样用 nars蜜粉是干嘛的
- 结婚男女戒指的正确戴法 男女戒指的正确戴法
- 痘印痘坑怎么来的 痘印和痘坑的区别
- 诗语女孩名字的含义,诗语女孩名字含义?
- 肇庆星湖紫荆花大道的紫荆花什么时候开?
- 肇庆黄花风铃木最多的地方在哪里 肇庆黄花风铃木最多的地方?
- 肇庆绿樱庄园的三角梅花什么时候开 绿樱三角梅几月开花
- 肇庆哪里的三角梅最好看? 肇庆有什么花