前言
为什么视频、音频、大型文档等大文件不能也直接上传吗,简单又方便?
遇到手动暂停、网络中断、网络不稳定或者服务端响应超时,当你终于半天到99%,网络突然断开喜提从0%再来一次
再者一次服务接受如此大的数据传输,不说服务器肯同意接收,即使配置同意接受这常常会使服务器出现响应超时或者陷入阻塞。为了解决这些问题,支持断点续传就变得非常必要了
快传、秒传⭐
文件块的上传时计算MD5值,根据MD5去查数据库文件块表,如果存在直接带着查到的记录返回上传成功!!
至于整个大文件是否需要计算MD5来比对数据库文件表,这取决于实际需求来决定。在某些特定场景下,可能需要验证整个大文件的完整性,或者需要将大文件的 MD5 值保存在后端进行后续比对等操作,在这种情况下,就需要计算整个大文件的 MD5 值
(快传、秒传广泛应用于网盘云存储、多平台同步、文件分享和传递、在线备份的场景)
断点续传⭐⭐
将大文件是数据分割为多个相同大小的小片,每个分片带着自己的序号和MD5值独立上传。如果发生事件导致传输中断,下一次传输时重新传输即可,已传输过的分片会根据MD5直接返回传输成功!!
(相同分片大小是为了服务端能够找到该分片在文件写入的起始位置,但是最后一个分片的大小可以小于等于分片大小)
上传流程
这里引入一张较为完整的流程图
细节思路
MD5如何计算