fileInit
初始化文件,上传文件名,md5,大小,后端返回需要切分的块大小,数量和一个文件上传的唯一ID
将文件信息存储再一个地方
uploadchunks
上传文件块,需要附带上传的唯一Id,块的md5,方便后端校验
记录上传块的Id,放在某个地方,比如redis,使用位图的方式存储
checkupload
检查位图,查看需要上传的块Id,返回前端,让前端上传需要的块
complete
最后的合并文件块,再验证md5,保证文件是否全部上传
先初始化文件使用 fileInit
调用 checkupload 查看需要上传的块,上传到文件
上传chunks
最后没有问题的时候,进行合并,再调用其他的什么的
在初始化的时候,redis中维护了一张位图关于是否上传完成的,如果失败位图将会显示错误,
通过这种方式,即使某个chunk上传或者什么失败了,也是会维护其他上成功的内容,所以下次上传的时候,通过 checkuplad 来得到没有上传的chunks,然后再上传,这样就相当与断线重连了
就是我目前实现的分片上传了