利用Minio实现大文件分片上传、断点续传、秒传
利用Minio实现大文件分片上传、断点续传、秒传
demo来自B站蜗牛哥,gitee仓库:minio-upload: 使用vue3 elementplus minio springboot 实现大文件的分片上传、断点续传、秒传的功能demo - Gitee.com
后端暴露端口方法
-
获取上传进度,identifier为前端计算的md5值
-
创建上传任务
前端传递的POST对象:
-
获取某个文件的某个分片的地址
-
对分片进行合并
具体步骤:
-
前端计算文件md5
-
前端调用后端taskInfo端口方法,传md5进行查询,md5即为文件的身份证,后端进入数据库桶记录表进行查询并返回,前端如果发现返回体不为空,说明后端已经存在这个文件,则没必要再次进行上传,直接用已有的。
-
如果查询到minio桶中没有对应的文件,则调用后端initTask方法创建任务进行文件上传
后端的initTask内部代码:
-
等待文件上传后,前端调用后端merge方法对分片进行合并。
此demo会将minio地址等信息暴露给前端,适用于内部环境,需要对方法进行优化,但是里面的文件上传方法值得借鉴。