360云盘的秒传什么原理,为什么几个g的甚至几十g的文件能够瞬间完成传输?

如题所述

秒传原理:
上传大文件时,会对文件进行比对操作,这里的对比操作其实就是将我们下载的插件对要上传的文件进行"哈希值"的计算,跟百度的"哈希值"数据库中的文件进行匹配操作.
如果发现两者的"哈希值"相同,那么,将已存在于百度数据库里面的文件对应的文件链接到我们对应的帐号里,做一个关联就可以,其实并没有对本地文件进行上传,所以我们也就看到了秒传的效果.

1、因为在上传文件之前,如果你是第一次使用百度网盘,那么会提示你安装一个 极速控件.

2、该极速控件的下载是为了更方便的来检测我们将要上传文件的 哈希值.也就是文件的唯一识别码.
下面的图片是一个文件哈希码的计算小工具,像这样的小工具有很多.算法也不尽相同.

3、下载百度的 "极速控件" 的原因:
百度有自己的一套加密算了.所以为了保证两个文件加密对比文件的准确性更高,要使用同一套加密算法才可以.
网上有资料说是以 MD5 方式对文件的"哈希值"进行比对.个人觉得不太可能,因为 MD5 在这几年的弱点不断被人们所发现,已不再适用当前的计算机安全环境.
再者,如果是用的 MD5 加密算法, 百度也没有必要提示我们再下载一次 自己的控件.
另一个原因是,百度网盘上的文件数量是以 PB 或者是 YB 来进去存放的,所以对于所保存的 "哈希值" 的唯一性要求更高.

秒传的弊端:
如果"哈希值"一样的,但是文件不一样怎么办,因为毕竟没有把我自己本地的文件进行上传,而是用的别人的文件,还是会有所担心的.
其实哈希算法就像是人的指纹一样,十万个里面可能会发现一个不一样的,这种概率极低.
另一方面,哈希算法其实不止我们所熟知的 MD5 ,还有 SHX , 当然,相信百度这样的公司有自己的一套更精确的算法.

既然有弊端,为什么还要使用秒传:
既然还有可能发生错误,为什么还要用这种秒传的方法,其实之前我也想过这个问题,但是结合生活中,其实不难发现,交通事故那么多,我们也一直在开车的道理是一样的.
总的来说,也就是利远远大于弊.
举个例子,一个photoshop文件是2个G,如果每次都上传我们本地的文件,那么,有一万个人上传的话, 百度就要存储20000个G的数据,而且存的还是同样的一个文件,远远没有做到资源的重复利用.中国地大物博,何止一万.假如只是对于一个文件作关联的话,就相当于是给了每一个人一个链接而已,这样数据库中最多也就几兆的数据量而已.

秒传的另一个好处:
大大节省了我们等待的时间.像是 dreamweaver,photoshop,美图秀秀等 人们经常使用的软件,上传的速度又快,文件又不容易出错,这我想也是百度为什么使用这种上传方式的重要原因吧.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-23
服务器上已经存有该文件,上传前先计算本地文件的hash值,和数据库中储存的作比较,如果有匹配的,就直接将该hash值对应的文件地址传送到使用者网盘内,并且返回上传成功。
相似回答