技术

大文件切片上传、秒传、断点续传

大文件上传相关

大文件切片上传、秒传、断点续传

简单版本参考(封装hooks): https://blog.csdn.net/m0_61644311/article/details/138212919

理论参考: https://juejin.cn/post/7123980028756361253?from=search-suggest

详细方法参考: https://juejin.cn/post/7073319150948450334

使用spack-md5库计算文件hash值,注意hash碰撞概率,可以将文件大小也加入比较,当切片大小相同、切片hash值相同时,认为是同一个文件。 spack-md5库参考链接:https://github.com/satazor/js-spark-md5

断点续传的逻辑: 文件切片,上传前计算hash值,在上传时将hash值一并传给服务器 上传切片前先将这一部分切片的hash值传递给服务器进行校验,如果hash值已经存在,说明这一部分切片已经上传过了 服务器根据hash值和文件后缀检测文件是否上传过 如果有完整文件,切片上传就已经完成 如果没有完整文件,就检测是否包含分片数据:这时有两种情况:1.没有,客户端执行完整的上传操作 2.有,给客户端返回已经上传完成的分片列表 秒传用于检测这一部分的切片文件是否已经存在于服务器中(检测hash值和后缀名) 分片全部上传完后,需要发送合并请求,将分片合并成完整文件 合并后可以删除保存切片的目录,不删除也没影响