文件秒传实现
文章目录
文件秒传的实现方法
参考的博客
文件的常用校验算法
- CRC(32/64)
- MD5
- SHA1
文件秒传的应用场景
- 用户上传
- 离线下载
- 好友分享
关键点:
- 文件 Hash(MD5,SHA1等)
- 用户文件关联
CRC32 64 表示生产的 值有 32,64这么长
md5 会生成 108 位
sha1 160位
各个方面对比
- 校验值长度
- 校验值类别
- 安全级别
- 计算效率 [CRC 一般用于传输数据校验,效率高,参考TCP]
MD5 和 sha1 一般作为文件签名或者数据校验
百度云秒传的实现揭秘
【百度云盘- 秒传探秘】
秒传的核心是计算用户上传文件的2个MD5值,如果成功匹配到百度云服务器中已存在文件的MD5,则直接返回成功,从而实现秒传;
如果匹配不到,才会老老实实的以二进制的形式上传文件。
小文件,省去服务器比较MD5的步骤,直接二进制上传,此举可有效减小过多请求造成的服务器压力;
可推测,随着文件增大到4G,用户的电脑计算这个大文件的MD5的所需的时间增长,用户体验不是很好,所以就干脆建议用户开会员,享受更快的上传速度。因为不是会员,所以会员机制的秒传机制,尚不得而知。
指纹技术能够计算更快
参考一个老外 开源的类库
他是 通过 js 对大文件分片,读入大文件 然后计算这个大文件的 hash值
前端 计算 hash 传给后端判断结果。
文章作者 LYR
上次更新 2021-08-14