当下,随着存储技术的飞速发展,各大公司都推出了云存储服务。但因为是免费面向大众的,无论微软的OneDrive还是百度的云网盘,好多人都难理解他们如何支撑起如此庞大的存储空间。就百度网盘而言 ,每个用户都可以免费得至少两个T的空间。其实百度并没有财力雄厚到为每个良好公民够买一个2T的硬盘,我们上传最多的无非是文本、图片、音频和视频,其中视频容量最最大,百度公司只要搞定“视频”这一关就足以撑起这一庞大的商业应用。据我自己总结,这背后主要有三点主要策略!
1.第一点,也是都能猜到的一点,大部分用户面对这2T的容量自然不会一下全部用完,据统计平均每个用户只上传了50~60M的文件,那么剩下的空间自然不会给你闲在那,百度也不傻,自然是存放其他人的上传文件。其实具体实施时,百度有一个存储器集群专门存放用户文件,我们每个人的空间都是一个虚拟(virtual)硬盘,而且它的大小是弹性的,按需分配,所有人的文件按上传时间顺序依次存放。而在终端用户上还显示的是连续的2T空间,这样宝贵的服务器硬盘空间不就节省出来了吗?
2.第二点,程序员发现,与邮箱不同,网盘里大家上传的内容有很多重复,尤其是电影电视剧,常常对于一个视频有上千次的重复上传。那么机会来了,显然只要对同一种文件存放一份,用户们共享它即可。但是计算机如何识别两个相同的文件呢?光比较文件名当然不行,这时厂商会利用哈希算法(Hash)算出每个文件的哈希值,哈希值相同则文件相同,要知道文件改变一个字符就会对哈希值产生天差地别的变化。然而如果每个文件上传时都计算的话,服务器的cpu很容易负荷超载,于是聪明的程序员想到一个办法,就是让客户机自己算,算完后再一起上传,这样算出之后若发现已经有重复就干脆不用上传了,直接在用户界面标记“秒传”。所以程序员写了个小软件或小插件,美其名曰“上传控件”,下载后会访问我们的cpu,成功圆事儿!
3.第三点,也是最强的一招,先要说到我们为什么要上传那些电影等视频了。比如好多人会把上传一些从优酷下载下来的视频和音乐,一个原因是看地方便,另一个原因是为了收藏老视频,防止哪天网上再也找不到了(或者要收费)。但百度知道这些视频网站的更新策略啊,百度资深的合作伙伴们会向百度提供视频的地址,并提供快速通道。这样一来借他人之手,百度网盘无需花费一个字节就可以实现各大网站视频的海量存储!!
——By Jim