大文件下载优化方案(nginx+Springboot+vue)---非常完美
系统中有个文件下载的功能,下载的文件从1k-几十G不等,小文件下载没有问题,只要上G了,下载大概率失败。基于以上现状,对技术方案记性优化。
2.1 服务器读取文件流传输+前端blob接收
描述:
后端接口通过response的IO通道,读写文件流传输前端接收Blob数据,等所有接收完成,再保存成文件 优点:传统方案,方案固定好写
缺点:文件先读到内存再输出,存在服务器压力;大文件传输过程中客户端和服务器的连接管道容易断开:broken pieped;前端接收内存压力;进度需要自己记录和计算;
2.2 使用NIO读取写入(同上)
描述:传输速度比BIO能快10倍以内
优缺点同上;
2.3 分片下载
描述:前端和后端都使用分片下载,等前端把所有的分片下载完成再合并成一个文件;
优缺点同上;能减少连接断开的概率;
3、完美方案:
目标:有进度显示;能正常下载完成;多人下载无压力;
描述:
进度显示:前端使用window.location.href=下载文件连接? 的形式;后端接口改成GET接口,参数拼接在url后面,包括token:因为href是新启动一个请求,并且header不能自定义,所以接口的鉴权只能放在url后面;后端接口对url参数和token进行验证;开始后端接口逻辑:获取文件路径,设置response的header属性,重定向到Nginx配置的内部文件路由nginx返回文件信息浏览器接收并在下方显示下载进度 Nginx.conf配置
Java代码:
最近更新游戏资讯
- 秋瓷炫老公什么星座(秋瓷炫血型星座)
- 法国电影中的女性符号和觉醒
- 惊人的秘密:颜色政治背后的渗透与分化
- 让BB接受家庭伦理教育洗礼
- 语言礼仪十篇
- 美军欲打造AI战机部队 面临严重伦理问题
- 医学伦理学:医学伦理学的主要观点和基本理论
- 豆瓣9.0分以上|50本好书推荐
- 达尔文的故事赏析八篇
- 港台国学类学术会议信息(四十)
- 东野圭吾本格推理极致之作《回廊亭杀人事件》开票5折抢
- 辩论赛包含哪些技巧?
- 【铸牢中华民族共同体意识
- 徽州醉春丨水墨画里的徽州-婺源篁岭-江岭- 新安江- 西递- 呈坎丨六天五夜
- 心理治疗总论 【医学心理学与精神医学版】
- 苏德超教授的新论文:道德绑架为何难以避免
- 企业社会责任综述十篇
- 政务礼仪的作用(五篇)
- 韩素希出道最大尺度 泄朴海俊指导秘诀 咬牙拍完《夫妇》只有2感想
- 《封神三部曲》:为什么要重述这个神话?
- 输血和喝血真的能帮助女性和老人保持年轻吗?
- 集齐九部《星球大战》,教你如何把家庭伦理拍成太空歌剧
- 这十部顶级英美剧,是当之无愧的业界巅峰,每一部都值得通宵去看
- 邪王宠妻之金牌医妃
- 【博览】《科奖在线》:“破四唯、立新标”典型案例官宣,项目/人才/成果未来可能这