目录
1.背景和功能
背景:文件大小1个G
实现的功能:秒传,文件续传/断点续传,文件下载。
2.前端需要做什么?
分四步
1.对文件进行拆分成比如20个文件,每个文件50m
2.数据开始上传 传输数据内容 文件的大小 文件名字 文件的字节码做的md5值
3.并发上传文件,如果服务端返回错误,重新上传指定的文件快。
4.数据完成 触发后端合并数据。
3.后端需要做什么?
分三步
1.数据开始上传 生成流水号id 校验文件是否上传过 文件名_文件大小_md5值,存在直接返回文件地址,没有记录一条数据,并标记文件上传的状态。
2.并发上传id 跟上面一样,先校验文件是否上传过,如果上传过直接返回,没有上传文件到oss或者fastdfs,并在db中记录文件的路径。
3.数据完成 校验数据是否完成,如果不完整,返回确实的数据块,如果完成,进行数据合并,并返回最终的数据。
4.总结
前后端分别的功能点:
前端 | 后端接口 | 功能 |
1.数据大文件切分 | ||
2.数据开始上传 | 校验文件有没有上传过,如果已经上传过,直接返回,已经上传的文件路径 | 秒传 |
3.数据正在上传, 并发上传 | 失败返回对应失败的文件名,成功,上传到oss/fastdfs上,并记录在db中 | 断点续传/上传 |
4.数据完成 | 触发数据合并 | 数据合并 |
5.参考
1.https://zhuanlan.zhihu.com/p/350173645
我是厚积薄发,欢迎大家一键三连,欢迎下方留言