https://www.jianshu.com/p/d0c575acc84c
大文件上传、多文件上传和断点续传的区别:
大文件上传目的是加快大文件上传的速度,方法是将文件切片,然后并行上传
断点续传的目的是防止上传过程中断后需要重新上传,断点续传在上传中断(如断网或者离开页面)重新加载页面后能够继续上传之前未上传的部分,已经上传的部分不再上传。多文件上传是指一次选择多个文件同时上传,其实就是多个并发的上传请求。
初始化:md5 + size + 文件名 + 总片数 + 已上传的分片index
上传:md5 + 切片 + 切片index
一次性加载很大的文件并且做md5会导致内存使用很大,最好分片md5:sparkMd5
前端先获取文件,md5,然后请求后端获取当前上传状态:未上传过/已上传的切片数量,如果未上传过,后端初始化,如果已经上传过则返回上传的切片数量,前端根据返回结果开始上传。后端在切片都上传完成后合并文件。
阿里oss也提供了断点续传的能力。