springboot 断点续传的方案思路

最近在弄文件上传的功能,由于涉及到大文件就会出现前端提交到后端很慢或者超时的现象。所以本文讲一下断点/分片续传的方案。以下提供三种方案 :前提前端进行根据文件阈值进行切割分片提交多个分片到后台,每次与后台交互进行一个分片交互。涉及前端进度条的问题,可以使用假进度条实现(如果使用真进度条,需要频繁请求后端方知上传真实进度,此方式抛弃)

一、利用数据库记录上传分片的进度

        前端把大文件进行按照设定的文件阈值进行分片好,进行提交后台进行上传分片文件,每次上传完分片数据库记录分片信息,下次前端提交上传时,校验该分片是否符合下个分片,整个大文件的分片提交完,则合并分片文件到正式存储目录

二、利用多个临时文件记录上传分片进度

      前端把大文件进行按照设定的文件阈值进行分片好,进行提交后台进行上传分片文件,每次上传完分片创建临时文件记录分片信息,下次前端提交上传时,利用是否存在该分片文件且校验分片文件大小,如果不一致则删除分片文件,接收前端上传文件进行上传,整个大文件的分片提交完,则合并分片文件到正式存储目录

三、利用单个临时文件记录上传进度

      前端把大文件进行按照设定的文件阈值进行分片好,进行提交后台进行上传分片文件,每次上传分片判断临时文件是否存在,否则需创建临时文件(代表该操作的唯一标识文件),上传的分片文件内容输入到这个临时文件,下次前端提交分片上传时,利用是否存在该临时文件且校验临时文件的大小是否匹配上传的分片开始处大小(每次交互前 前端需请求询问后端该文件上传的最终大小是多少, 以便前端进行续传)继续输入分片内容到临时文件,接收前端上传文件进行上传,整个大文件的分片提交完,则把临时文件拷贝到正式存储的文件进行存储。

 

推荐使用第三种,相比数据库记录方式可以对第三方进行解耦。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值