遭遇“百度云盘”的“秒速上传”

  • 评论:0
  • 浏览:20931
  • RSS:0
文章类型:原创

今天和学生讨论电脑的问题,学生说他在家里往“百度云盘”上传了一个1G左右的文件,只用了10秒左右。我听了以后是肯定不会相信这种事的,别说是上传到网络,就是硬盘对拷要达到这个速度也不容易。学生说可以做个实验,以证明他的说法。

在我的电脑硬盘上找了一个3G左右的电影文件,用他所说的“秒传”工具上传,不出10秒竟然显示“上传成功”!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象。那我就来验证一下,我的想法是把上传的文件下载下来,然后看看是不是原来的那个文件。迅雷以正常的网速下载,没发现什么异常,由于下载完需要较长的时间,所以索性就中断了下载。

为什么上传的速度那么快,而下载却是正常速度?这不符合常理啊!我突然想到了一种可能,那就是网盘上已经有了一个与我上传的文件一样的文件,当上传工具发现这个特点以后就不需要上传硬盘上的文件了,而是以网盘上的文件代替,这样显示出来的速度当然就可以“逆天”了。

既然是这样,那么我就再做一个实验。把刚才上传的那个电影文件改一下文件名,再进行上传,心想这下你应该没那么快了吧。再次出乎我意料的是:它仍然“秒速”上传成功了!呵呵,这让我有点在学生面前丢面子,但我仍坚信自己的观点,任何事情都不可能违背科学原理的。我改变了文件名,但文件本身并没改变,而识别两个文件是否相同的方式不在于文件名,而在于文件的检验码。于是我想和学生再用其它方法实验一次,由于马上就要上课了,所以这个实验没有进行。

下课后,我没再进行实验,是因为我坚信自己的观点。于是我在百度上搜索相关的文章,果然找到了一篇,呵呵,和我想的基本一样,终于让我在学生那儿找回面子了。

――――――网上查到的相关资料――――――

什么是秒传?
  秒传是一种在网盘上常见的忽略式上传方式,比如您上传了一个文件名为aaa.exeMD5为一个数,网盘上以前也有人上传一个叫aaa.exeMD5和您上传的文件MD5一模一样,所以这个文件上传到服务器上的时间就很短了,这是因为别人上传过这个文件,您现在上传这个文件,服务器上有这个文件了,所以在服务器把这个文件复制一份到您的网盘上就可以了。就好比,别人叫你做以前做过的事情,又有人今天找你来让你做相同的事情,你是不是已有经验,会很熟练,做的时间就快多了?在这里也是同理。
秒传的原理详细解释
  上传到网盘的每个文件,服务器都会校验MD5。如果这个您上传的文件MD5与已经存在于服务器里的文件的MD5相同的话,网盘服务器将会判断成为重复文件,只需要复制副本保存在网盘上即可,无需重新保存,因为有过目前这个文件,于是很快完成上传任务,并在有人需要下载的时候将原有的该文件的下载地址放出。这样实现了服务器的高效运作。
怎样不秒传?
  把你要上传的东西压缩成RAR,东西上传,服务器会先做MD5校验,如果服务器上有一样的东西,它就直接给你个新地址,其实你下载的都是服务器上的同一个文件,想要不秒传,其实只要让MD5改变,就是对文件本身做一下修改(改名字不行),例如一个文本文件,你多加几个字,MD5就变了,就不会秒传了。
  但是有些文件我们不好改变,也不想改变,那其实只要压缩一下,MD5就变了,而下载的人也能获得最原始的资料,不过就是加压要花费一点时间。