百度网盘是怎么实现 6 亿用户,每个人可以分到好几个 T 的?

使用CN2/CN2GIA顶级线路,支持Shadowsocks/V2ray科学上网,支持支付宝付款,每月仅需 5 美元
## 加入品葱精选 Telegram Channel ##

知乎用户 禁与千寻 发表

一句话就是,百度网盘使用了文件指纹技术,对于重复文件只保留一个,其他人都使用连接指向,也就是快捷方式,而不是本体。

简单的说,大部分人的网盘里的大多数文件都是分享别人的,也就是说每个人都有很多重复文件,而整个网盘会存在的重复文件更多,例如各种小姐姐的视频,各种游戏软件,等等,同时还有很多是内容完全一致,但是文件名不同的文件。

例如这三个文件。重复的至少几十万用户。轩辕剑还是挺不错的,我喜欢妮可。

百度也是做生意的,也要考虑成本啊,既然有那么多重复的,我能不能就只保留一个文件,其他人都用快捷方式呢?

毕竟百度网盘的 1T 空间,实际需要的用盘是不止 1T 的,需要做阵列,热备,有些时候还要镜像什么的,而一台专门的服务器很贵,各种硬件都要优于台式机。且一台服务器往往是不可能用到报废,有很多服务器一点毛病都没有就得撤下。其它看不见的费用更多,包括建立数据中心等等。而我们个人使用,一块 3T 硬盘也才 500 多。一台破电脑两千足矣,服务器两千还不够凑 1T 呢。

毕竟百度的 1T,可比我们贵很多,首先他一个文件绝对是有备份的,否则万一损坏后果严重,其次服务器也有备份,硬盘都是企业盘,阵列啥的。台式机 1T 现在只要三百多,服务器的硬盘可能要一千多,而一台服务器更贵,贵的离谱。且一般数据中心的服务器是时间差不多就换,不像我们是用到报废。

我自己之前写了一个文件管理系统,原理和百度网盘类似,只是个人使用,基本原理大致一致。

首先,我们有一种算法,可以根据一个文件的内容和某些信息(不考虑文件名)得出一个特征编码,这个特征编码是唯一的。也就是不同内容的文件,都会得到一个独一无二的特征编码,我们姑且认为是指纹信息,这种算法我们姑且认为是指纹算法,就好像每个人都有一个独一无二的指纹一样。日常的指纹识别和人脸识别也是如此,根据你的指纹或者人脸去生成特征码,在检测未知目标的时候重新根据人脸或者面部获取特征码,和已经存储的特征码进行匹配,如果相同则是同一指纹或者人脸,如果不同那就不同。也就是说,其实指纹和人脸识别是不存储指纹和人脸本身的。

日常生活里我们会利用一个类似的叫做哈希的东西,它就是根据文件内容得出一串编码,一旦文件内容改变,那么编码也不同,这个我们可以用来校验文件是不是被修改。这个哈希就是文件指纹算法的基础。

基本过程就是,计算 A 文件的特征码,计算 B 文件的特征码,对比两个特征码,如果一致,则判定两个文件是一致的,如果不同,则绝对不同。

当然 MD5 和 SHA1 应该有可能出现重复的,也就是恰好有那么一两个文件内容不一样,但是计算出来的校验值一样,但是日常生活里很难遇到。因为内容不一样,往往就完全是另外一个文件。而要做到文件只有些许差异,但是特征码一样,这几乎是不可能的。

基于哈希,我们可以发送文件给别人的时候同时把哈希码发过去,那么别人就可以基于这个判断是不是被人或者木马病毒给搞了。

哈希是基本原理。

而当我们上传文件的时候。首先程序会计算文件的指纹信息。评论里说百度用的是 MD5,而我个人使用的是 MD5+SHA1+CRC32+Len 的组合验证,反正个人使用,不在乎效率。这样子存在重复文件的概率大概是 1 分之(36 的 280 次方 ×100000000),据说宇宙所有物质组成之和是 10 的 80 次方,围棋复杂度是 10 的 128 次方,因此这边可以认为接近唯一了。

当我们使用网盘系统上传文件的时候,首先程序会以二进制方式读取文件,并根据指纹算法获取指纹码。(指纹算法是将任意长度的文件转化成制定长度的字符串

例如上面的文件,指纹编码: 7F3B85B0A1F8E768D43C502FA03A2853(这边拿 MD5 举例),然后查询数据库。

如果网盘已经存在了对应文件,那么可以获取对应的数据编码 00001

那么接下来就是将对应的数据添加进用户文件表,因为文件已经存在,所以并不会上传文件,只是添加一个记录而已,这就是所谓的秒传。

假若数据表不存在对应项,则添加一个新纪录

然后再将文件完整上传并在 001 号文件夹下生成对应的 00004 数据文件。

我的系统里数据本体是没有后缀名的,也即是纯数据文件,后缀名由文件表决定

然后再把新的编号,写进用户文件表

此处数据编码应该是 00004

这就是网盘系统的基本过程,每一次上传文件,就是检测是否存在,是就不添加数据,只添加用户表,如果不存在则完整上传,并添加用户表。

等到使用的是偶,就是根据 用户文件夹表数据编号 去查询 数据表数据路径数据编号 并下载。

有一天,禁与千寻这个傻缺又想玩游戏了,却又不知道自己网盘有,然后又找到一个别人分享的,保存到自己网盘。

同样另外两个用户也喜欢玩这个游戏。

那么他们最后上传文件的时候,因为数据信息已经存在,于是最后不过是给文件表添加对应的文件信息而不用完整上传数据信息了。

于是我们看到虽然有三个用户,四个文件。但是其实只有一个数据文件,也就是 001 文件夹下的 00004 号数据文件。

附加一句,指纹信息只和文件内容有关,与文件名称与后缀无关,当然数据库有专门针对文件名的过滤算法。

以上是网盘的基本原理。也就是文件列表里其实有很多名称后缀完全不同的文件,对应的都是数据表中的同一个文件。

而我们知道百度网盘并不像我们的电脑那样子可以方便的打开文件,往往是需要下载的。就是因为其实我们并没有数据本体,我们直接打开界面,网盘系统其实仅仅读取我们的文件表而已,显示我们有什么文件,等到真正下载文件的时候,才根据文件列表去下载数据。这就是大文件可以妙传,不可能秒下的原因。当然如果反向扫描电脑还是可以实现,但是成本就太大了,另外现在好像可以在线播放视频和打开压缩文件,这用了其它技术,暂且不管咯。

基本上后期的大多数文件的分享和上传仅仅是操作用户的文件列表而已,这就意味着很多人的网盘空间实际上是没有数据存放的。这也是很多人为什么保存别人的文件,不管多少,多大,都很快就完了,现实里本地复制都没这么快。而数据库级别添加一万条记录也是很快的事情。

另一点就是秒传的实现。很多时候我们上传一个文件,一眨眼就上去了,其实就是获取指纹信息后发现已经存在了,就不上传,只是给你的文件列表添加了一个连接而已。

当然有人会问,总有新文件吧,那还是要增加空间,事实上我们真正会上传的全新文件往往很少很小,例如很多人的资料都是 Excel,Word,几年的数据几百页不过几 M,你几千个文件还不如小姐姐一小时呢。而大部分人使用网盘都是下载,很少上传

同时我们国家,个人用户的带宽是不对称的,也就是下载快,上传慢,这一点就导致了少数会上传文件的人,也会优先选择小文件。这一点大大限制了新文件的增加。

使用指纹编码,那么人越多,实际的空间占比就越少,结果就是看起来 6 亿用户,每人 2T,实际上其中一大半的用户根本没多少文件,网盘系统是你有多少文件给你分配多少空间,也就是类似动态空间,而不是像我们都得买一个新硬盘,不管用不用。当然实际上就是一点空间也没用,不过就是统计一下你所有文件数据的大小总和,这个学过数据库的都应该懂。如果限定每人 2T 的话,那么就是,检查你新新增的文件大小 + 已使用的文件大小是不是 > 2T, 如果是则不予添加。

对于个人用户来说事实上真正是全新文件的很少,全部用满的很少,而全新文件一旦上传,也能为别人所用。

例如我的网盘几乎就是保存别人的东西,几乎没有上传什么东西。甚至有些存了双份。

或者说网盘系统其实分两个部分,一个是数据系统,这个是存放文件本体的地方,不属于任何人。一个是用户文件列表系统,文件系统只是指向数据本体,本身占用空间极少。例如我们最常说的 1G 的种子,可能就是几千亿部 400K 小电影了。当然我们上传的所有文件最后都成了百度的了,我们可以下载,但是永远无法删除,除非百度认为不需要了。我们的删除只是删除文件列表而已,数据本体依然存在。

使用指纹编码还有一个好处就是,便于管理。例如如果想要知道一个用户的网盘是不是有重复文件,只要查询一下文件列表即可,有重复的指纹编码就是了。如果没有指纹编码这需要一个个文件去校验,然后去对比。

另外一个就是内容管控,例如某天某部说,要和谐,于是百度只要直接找一个小姐姐的文件扫描一下指纹信息,然后找到数据库中的那个编码变,标上不可用,或者直接删除数据本体,那么以后所有人通过编码只想数据表的时候或者被提示文件不可用,或者去下载的时候系统告诉你本体已失灭。反向的话就是批量删除所有用户文件列表对应的信息。至于其它删除回收站啦,确定文件是否被使用吧,使用次数,最后一次使用,以及权限等等都是数据库层级的事情了,只有真正下载的时候才读取数据本体。

和谐文件后可以删除数据本体,保留数据记录和指纹编码做匹配用。这样子我哪怕本身没有这个文件数据,也可以匹配出你是不是被和谐文件。

这也是曾经有人的 360 我网盘一夜之间几万个视频都变成蓝色封面的原因,这也是为什么有些人把文件改了名字还是被和谐的原因,这也是为什么文件加密就没事,这也是为什么有些文件会被和谐有些不会被和谐的原因(不会被和谐是因为还没被举报没被扫描)。当然和谐还有一个最大的好处就是,保留指纹信息,删除数据本体。这样子更能节省空间,事实上被和谐的文件占比是很可观的。所以从某种情况来说,百度一边提供各种链接让你去分享,一边鼓励大家去举报,真实一举多得。

附加一句,任何用户上传的文件,都不再是用户独享,是可以被共享的,只要别人上传的文件指纹一致就可以。所百度根本不需要删除用户的文件,他只需要删除数据,且不需要查看数据,因为数据指纹信息在上传那一刻就存在了。百度只需要对比非法文件,然后查找出对应数据并删除,全程不需要知道文件内容是什么,因为是别人提供的非法文件。这就是指纹信息,这就好比那些犯过罪的人如果登记了指纹信息,警察下一次就根本不需要去采集了,直接数据库匹配。对了就抓你。

一句话就是扫描非法文件,删除非法数据,与用户无关

现在你应该知道,为什么有些文件需要秒传,为什么秒传还需要等待,为什么文件会被和谐,为什么百度那么壕给没人 2T 空间,为什么保存别人的文件很快,下载很慢。

现在你也还知道百度为什么限速了,限速了有些人在上传超大文件的时候就会考虑以后下载太慢而放弃了。

重复的数据那么多,看来,人类的本质就是重复。

等等。当然实际的网盘系统会更复杂,需要考虑的内容更多。也同样的新文件不断增加,例如各种自拍小视频,自拍艺术照,这些日积月累也很可观。所以百度到后来必然是会走收费路线,然后不断会员分级限制等等,谁也不敢保证以后是不是走 360 的老路,所以给自己留个后路还是必须的。

当然根据原理,我们可以知道我们的文件一旦上传就要成了数据,后面我们的所有操作除了下载,都是基于数据库操作,也就是说文件我们可以下载,但是无法删除。

话说我们的资料到了百度手里会被榨取出多少价值呢?

知乎用户 坚果云​ 发表

除了大家都能够意识到的对重复数据的利用,咱们网盘界还有更多数据的优化方案来让空间成本更低。


假设服务器有 1TB 的存储容量,规定了每位用户账户中的空间是 1GB,那是不是只能服务 1000 名用户?——并不是

虽然理论上是每位用户都有 1GB 的空间,但是实际情况是大部分人都用不满 1GB,可能连一半都用不满(想想自己是不是就是这样的),那多出来的空间就这样浪费了吗?

当然不能浪费!这都是钱啊!所以我们还要优化。

假设平均每位用户只会用 1GB 中的 500MB,那就意味着服务器中有 500GB 的空间是长期闲置的。那我们可以把服务器中长期闲置的 500GB 分配给新的用户使用,新的用户也是每人 1GB,也是每个人平均只用 500MB。这样原本只能服务 1000 人的服务器就能服务 2000 人了。

肯定有小机灵鬼想到了:那当服务器存满了以后用户又存了新的数据进来怎么办?

这也不是什么大问题,既然第一台服务器存满了,那就开启第二台服务器呀!没有规定说一位用户的数据一定要放在同一个服务器内。由此一来用户的数据可能会分布在不同的服务器内,不仅优化了存储结构,还增加了安全性。同时作为用户来说使用端体验上没有任何区别。

举个简单的例子就是每台服务器就像是一个空瓶子,而数据就是水,第一瓶装满了水就往第二瓶内装,尽可能充分利用每个瓶子,尽可能减少空瓶子的数量就是尽可能减少成本。

不过虽然我把这事说得很简单,但实际做起来的难度是非常大的,真正能达到的效果取决于网盘商的技术实力。因为我不仅要把水装进瓶子里,还要随时能从水中取出特定的某个水分子。

如果用户们的重复数据多的话,又可以节省下来好多服务器空间(怎么判断重复数据可以看另一个高赞回答。)

通过存储结构、重复数据优化和其他的技术,降低存储的成本,每个人分到 1TB 那也不是不可能的事了。


** 有人会有疑问:“为什么坚果云不是每个人好几个 T”?

emmmm…… 原因也不是我们抠,原因在这里:

[你所在的行业有什么常识是希望其他人知道的?​www.zhihu.com

](https://www.zhihu.com/question/47130245/answer/616475724)

知乎用户 茄子 发表

谢邀

其实所谓的云端就是指云服务供应商的服务器

服务器是什么?

所谓服务器通俗一点讲就是一台高性能计算机。百度的网盘业务就相当于这台计算机里的我的电脑 / 此电脑。我们的文件都在里头,一个账户就相当于一个文件夹,把别人分享的文件保存到自己网盘里,就相当于一次复制粘贴。百度的这台电脑不是一台服务器,而是有成万上亿个服务器组合而成的

百度的服务器有多大?

这个就不清楚了,百度的服务器遍布全国各地,数都数不清。但可以知道的是这么多服务器维护成本是相当高昂的。所以当百度网盘要你充 VIP 时,希望你能理解一小下。(然后再喷)

不过相信大家都记得那个令腾讯和阿里巴巴崩溃的春晚,在 2019 年百度竟然扛住了!

[史中:百度的春晚战事​zhuanlan.zhihu.com

](https://zhuanlan.zhihu.com/p/57815542)

大家可以通过这篇文章粗略地估计一下百度的服务器数量

每个人 2T 是真的吗?

假的!从 2018 年 12 月 31 日到 2019 年 12 月 31 日未登陆过百度网盘客户端的用户原先的 2T 空间将会调整为 100GB

题外话:我的不可描述文件会不会被百度查看并删除?

这个不用担心,宪法规定我国公民依法享有隐私权。除非有人举报或者司法机关允许,否则百度无权查看并删除你的文件。尽管这个服务器是百度的。

放屁!你的隐私在商人眼里就是一个商品,可以随意买卖!更何况这是恶心的百度!就算被和谐,百度也只是例行检查,而你却被指责活该!

但是只要做到以下三点,大胆开车也不怕:

1. 文件名不要有敏感词汇

2. 文件最好放压缩包,一定要加密!如果不放心,可以直接把扩展名改掉,一定要注意不能让人通过文件名猜到扩展名(示例:原文件:嘿嘿嘿 xxoo.zip,上传文件:搞笑视频. mp4)

3. 如果是文档或者 ppt,一定要仔细看看有没有政治敏感

吾日三省吾身,zt?gz?gx?

知乎用户 殇雪 发表

一个文件只储存一份即可,其他都是『快捷方式』,不占空间的。

容灾备份另当别论。

知乎用户 苦寒 发表

你让你每个用户随机生成 2TB 的文件传输上去。他的服务器绝对炸了,

这个网盘完全依靠大家传输的数据重复性才能运行下去,比如一个大型软件安装包,20GB,假设一万人保存了这个文件,那么占用的空间为 20G 加上一个 100KB 以内的数据库。哪怕翻倍为 1000 万人,也就多占用几十兆。这个跟数据库种类有关。

知乎用户 Acoris 发表

6 亿人每人存一张同样的照片,假设照片都是 1M,你觉得百度浪费了 6 亿 M 吗?

没有!在服务器里面只有一个文件,但是这个文件被 6 亿人保存了。

所有人网盘容量 - 1 但是百度网盘只 + 1。

假设有一亿人的 1T 硬盘里面都保存了同样的文件,那么服务器里面占了多少空间?

1T 多点~ 但是你们觉得花了多少空间?一亿 T,差别出来了吧?

重叠懂吧,重叠在一起的人越多,这个部分越省空间,但是在用户角度而言空间浪费了就是浪费了,所以你的网盘里面到底浪费了多少百度的空间,你上传的时候就知道了。如果显示秒传,那么恭喜你,这部分的文件没有浪费百度服务器的空间,在他的服务器上已经有一个同样的文件了。他要做的只是在你的网盘中添加一个引用而已。

如果说干货吧,原理就是 MD5,如果服务器中有同样的文件,那么就不再上传,重复使用就好了。

但是这种文件级别的 MD5 算指纹,它的去重复性能并不是很高,唯一的好处在于保存文件指纹所消耗的硬盘空间很小。在实现上我觉得它会把一个大于 1MB 的文件,分成若干块,假设每 500Kb 算一个数据块,每个块算一次 MD5,这样就能保证一个文件中有多个数据块被重复使用。

Merkley Hash Tree 实现就好了。

知乎用户 Leon 发表

给你一个 T,其实并没有真的给你,那只是个虚数,只有你真正上传了文件占用的空间才算,况且网盘上很多同样的资源,比如一部电影,你网盘存了,别人网盘存了,但百度的服务器只占一部电影的空间,懂吗,因为是同一个资源,所以百度需要的服务器并不是 1T×6 亿用户

知乎用户 春艙 发表

依靠 MD5 或者 SHA 算法计算,如果文件的十六进制数据全部都是一样的话,计算得到的结果是一样的。这样就当作同一个文件了,同样的东西就只用储存一份。比如你会发现一些很大的几个 GB 的文件可以一秒就上传,就是这个原理。

MD5 可能存在不同的文件计算出相同的结果的问题,如果有那个精力的话可以构造一些假的文件去爆破百度云数据库,造成真正的那个文件的丢失。

如果所有人都懂得上传网盘的东西一定要加密这个道理的话,百度一个人最多分配 10GB 的免费空间。

知乎用户 刘思翼 发表

举个例子,题主有一个 1G 的小电影存在电脑里,然后你跟这个回答里的所有答主说,你们现在每人都存了 1G 的小电影在我这,需要的时候随时可以来拷贝,现在有 6 个答主了,那么按照你的理解,是否就有 6G 的小电影存在题主那里了呢?并不是吧,实际你就只有 1G 的小电影,但宣称 6 个人,每个人都有 1G 的小电影在你那里。

百度网盘同理,宣称每个用户都有 2T 空间,但问题是并不是每个人的文件都不相同,很多人之间存储的文件是相同的,这时候百度就把相同的文件只保留一个,剩下的都删掉,然后给每个人一个目录,你们需要可以从这个目录里找到文件再下载,实际百度并不是真的给每个用户分配了 2T 的私人空间。

知乎用户 光影 发表

突然想到,要想 “治一治” 百度,大家都将自己的大文件都下载下来,然后稍微修改一下,再上传回去

知乎用户 「已注销」 发表

每个人 2T,有个前提不用不占空间,重要文件不用文库,比较多的就是媒体类了,那么小电影、大片都有相当大的重合率,网盘只要分别为这些文件打上一个识别码,取文件的时候直接通过识别码提货,上传的时候打码,可能分开存要 100T 的 100M 小文件,其实在百度空间只占 100M(容灾不算),

用的人越多,实际上空间利用率越高,6 亿人,平均每人 1G,实际上只要 500PB 的样子,加上容灾,1500pb,虽然非常大,但实际上比 12 亿要少好几百倍了

知乎用户 语法糖 发表

同一个文件只存一份,所以表面上有些人网盘都满了,实际上就是满盘的快捷方式,真正自己用的空间很少。就算有少数人网盘里都是没日没夜地上传的自有文件,那对全局来说影响也不大。更何况非会员上传下载限速,没人会把大文件扔这里面频繁使用。

另外储存空间可以动态分配,比如你闲置的 200g,可以分给别人,等你需要用的时候再从其他人那里分来。只要不是同时用满,都可以有周转的空间。

另外,猜想百度会有文件压缩,使用频率不高的文件就压缩扔到角落里,等需要的时候再调出来。

知乎用户 ggffss 发表

只是一个数字而已。

知乎用户 心灵 发表

它的用户数量没有这么多,它对于文件的管理有它自己的判断体系,不会让重复的文件占用它的空间的。

知乎用户 手摇印钞机 发表

还有就是实际上用到的哪有那么多,排除重复的安装包电影,一般个人文件用不了几 G 的

知乎用户 ufozhou 发表

1. 2T 是给你的空间而不是你占有的空间。正常人也就最多占据 500G 额度

2. 重复的内容都不消耗百度的容量。(你如说盗版电视剧,服务器上是要存 1,2 副本就够了)

知乎用户 Weasley Frank 发表

1. 单纯文件指纹是不太现实的,文件指纹实际省不了多少空间。

2. 我更倾向于是同时使用了重复数据删除和文件指纹,文件比较多的情况下前者能省下大量的空间

知乎用户 提了废 发表

唯一文件索引 + 共享空白空间。

唯一文件索引高赞回答已经提到了。

共享空白空间就是,明明我只有 2.5T 硬盘,A 用了 250MB 空间,B 用了 250MB 空间,我可以告知 A 有 2T 空间,1750GB 空闲,B 也是 2T 空间,1750GB 空闲。

用户少的话还是会被发现的,一旦用户多了,特别是闲置用户多了,这个牛批就可以越吹越圆了。

知乎用户 李子 发表

如果了解 BT 下载的原理就很容易知道网络硬盘是怎么回事了

知乎用户 赵若曦名字八个字 发表

建议群主先去自己搜搜,怎么回事再来提问。知乎上类似的内容有很多了已经。

知乎用户 缚苍龙 发表

每个人分几个 T, 真正用的有多少,平均不到分配量的百分之一吧!所以空闲的空间是很大的

知乎用户 丁飞飞 发表

我就问一句,我上传的自己的照片永远放在百度服务器了吗?无论我删与不删

知乎用户 茅时雨 发表

如果这些用户把空间都塞满个人照片的话,显然服务器的空间是不够用的。但是当你上传一些其它的东西的时候,有没有遇到过极速秒传的呢?这个其实就是客户端检测到你上传的文件在服务器中已经有了,不需要重新上传。绝大多数大文件都是热门资源,可能一个文件保存在成百上千的用户的网盘里,这些文件在你的网盘里只相当于一个快捷方式,最终都指向同样的地址。所以网盘实际需要占用服务器的存储空间是远小于各个用户使用的存储空间只和的

知乎用户 zxiang 发表

百度没有的,你上传了 = 百度有了 = 你可以秒传

总之,百度上的资源是公共资源,公共资源可以实现秒传(快捷方式)。你从网上下载的大多数都是公共资源,不用想,秒传。而你自己日常工作或生活创造出来的图片或视频等都不是公共资源,肯定要慢慢传啊。不过你传完第一遍之后,资源就属于公共资源了,可以秒传

第一遍慢传,第二遍秒传;私有资源慢传,公共资源秒传。公共资源是万人共用一套资源,一套资源发送万个快捷方式

简单说一下,几个关键词:

  • 快捷方式
  • 秒传
  • MD5 值(文件的 “身份证”)
  1. 百度网盘里面所谓的文件,大多数都是由网络上获取的,自己生产的这部分占小部分。
  2. 通过链接分享转存到网盘,仅仅是将文件做了一个 “快捷方式”,所有的文件有且仅有一个版本保留在百度终端,这样就极大节约了百度网盘的存储空间和费用。
  3. 上传的文件,已不再属于你自己,删除后(垃圾桶删除),仍然可以实现 “秒传”,这是在终端识别到了你刚刚上传的文件后,对你文件的一个转存(或者说创建了 “快捷方式”)也就意味着它是一个工作盘,而不是个人盘。
  4. 关于视频和谐的问题,所有的文件都有一个类似于独立账号的数值————MD5 值。一般来说,视频被举报了,那么视频里面的 MD5 值就被列入了净网行动的黑名单,“删除” 终端的视频文件,那么所有用户的文件转存(快捷方式)都会被统一和谐。
  5. 逆推一下,怎么才能不被和谐?确保文件 MD5 值干净且不被举报,(正规资源一般是不会被举报的,放心使用,这里强调的是关于 “人性释放场景” 类的小视频文件):批量修改视频 MD5 值,压缩打包加密,绝不向外分享传播(其实挺麻烦的,还是存本地磁盘吧,弄个加密软件)

知乎用户 Michael Li 发表

2 个 T 并不是给用户的真实保留空间,你可以理解为配额。也就是规定每个用户最多可以占用的空间阈值。

由于并不是每个用户都会把 2T 占满,实际上真正保存趋近于 2T 内容的用户极少,所以实际需要的而存储空间远小于 “12 亿 T”。

其他的原因别人都说了,要保持存储的高可用需要特殊的算法来实现高可用。总的来看,这部分又会比实际存储的文件大小多一些。

知乎用户 维他菠萝茶 发表

我现在也有几个 t,但是只能打开几个 g

知乎用户 匿名甩尸 发表

说是有 2 个 T,但能用到一半的都很少吧

知乎用户 XenoAmess 发表

如果想问高并发的话去查 gfs。

如果想问容量大的话去学哈希。

好了。

知乎用户 Draclira Camp 发表

你的文件如果被删了. 百度是不用负责的

知乎用户 匿名用户 发表

存储原理层面其他优秀回答有很多。

物理存储上,百度网盘有 4 万台服务器,挂 12T *18 个磁盘。

知乎用户 弗尔序 发表

所以其实我建议重要数据不要放网盘,一删都删

知乎用户 风中等你 发表

网盘资源不会重复,都是单个的,比如大家都看的电影,自己的网盘都有,,其实系统里只有一部,上传的时候就感觉出来了,几个 G 的电影,刷的一下就上传成功了,感觉并不是上传成功,而是系统找到了一样的资源连接~

知乎用户 kiratale 发表

如果会员再便宜一点就好了

知乎用户 Adampire 发表

收费和限速

知乎用户 pany 发表

显然,这里百度网盘用到了阵列,镜像相关技术,至于具体怎么实现的…

等我学完云计算再来给你嘚瑟 (>_<)

知乎用户 Randolph555 发表

一本万利

知乎用户 luckya 发表

你知道百度网盘最怕啥吗?生成 100 亿个不重复的小文件,压缩过后传上去解压,啧啧

知乎用户 匿名用户 发表

百度网盘不是会员能用?

知乎用户 落花生 发表

看到这个问题,我就不禁为我那几百 G 的视频和图片哭泣 ,不说了,让我自己先哭一会儿,懂的自然懂。

知乎用户 郭邯 发表

其实百分之 99 的人都用不了那么多,能用个 100G 就不错了。就像我说我允许你活到 300 岁,你就真能活到 300 岁一样。还有一个大部分资源都是冲突的,百度不会傻到同一部电影每个人都给你存一份

知乎用户 Lex Teng 发表

百度计算了文件指纹(每个文件都不一样)。同一份文件只会存一份原稿和几份备份,备份放在不同的数据中心,实现异地备份和本地加速。

每个人的网盘里存的是文件的链接,因此用户占用空间不大。用户网盘中的文件重复率很高,尤其是大文件重复率非常高(音频、视频、软件等),实际占用空间分摊下来就不是那么大了。

文件在上传时就会计算文件指纹,如果数据中心已经存在该文件,就会省略上传过程,在用户网盘中增加对该文件的链接。在用户看来,似乎瞬间就传上去了,这就是秒传。

知乎用户 匿名用户 发表

举个最简单的比方,打个最容易的例子。

某手机应用商城

软件下载量第一是:

XX 软件

下载量是 576 万,软件大小是 84MB

这不代表这个软件在公司那里有 576 万份,本体只有一个,别人下载的只是一个备份。

实际上它在应用市场里占的空间不超过 100MB。

百度网盘同理,你百度了一系列枪版电影,总共 500G,又弄到了一堆破解版游戏,总共 500G

可是,不代表全世界只有你一个人保存了这两份文件包。

即使世界上有一千万人保存了。

可是在百度那边,这个文件只占用了它们 1T 的空间。

知乎用户 吕正 发表

除了文件指纹技术,thin provisioning 也了解一下

知乎用户 詹姆斯雷 发表

看完热评,真的给程序员跪了啊啊啊,好难啊,文科生根本看不懂

知乎用户 默墨 发表

你上传一个大文件,很大概率是秒传,

举个例子就是一些热门电影,还有 Windows 的 Office 的安装镜像。即使你改了名字之后…

你上传的文件如果之前已经存在了并不会多占用空间,其实就利用了已经存在在服务区上的文件,反正某种技术(不知道什么 md5)校验后发现是用一文件就会 “秒传”。

如果你重新把文件打个压缩包,然后压缩包里添加个其他无关文件,再上传的时候就看到了真正上传的进度条。

知乎用户 匿名用户 发表

非常复杂。

简单的理解就是你自己在电脑上,创建 10 个用户,弄一个 1G 文件再弄 9 个快捷方式看看总共占用多大容量。

百度一下 md5 或者 sha1。

再百度一下硬盘 RAID 开始慢慢理解,一个 1G 文件,在单硬盘,RAID0,RAID1,RAID5 上各占用多大容量。然后热备,冷备,分布式存储,CDN 等各占用多少空间。

知乎用户 棠莫 发表

只要你不是用网盘存监控,就不用担心这个问题。

知乎用户 圣君大人 发表

还有一个就是 并非所有人都用满 1t
比如我才用了几个 g

延伸一下 当初 谷歌 g mail 也给每个用户 超大的空间(也好像是无限量)
其实当时严格按照用户计算的话 谷歌的空间是不够的
只是一来 不是所有用户都占很大空间
二来他们预计未来存储成本会下降 能买更多的硬盘
所以谷歌用大容量的 邮箱吸引来好多用户

知乎用户 亦庄亦谐 发表

今天刚吐槽百度网盘吃相难看,也算是缘分。

百度前期通过烧钱扩大市场,而后,等着众多竞争对手分分倒下,开始收割市场了,体现在会员和超级会员方面。

其实吐槽归吐槽,得感谢运营商,提供了这么好的产品,但愿超级会员能别涨价了,但愿百度网盘能活下去。

知乎用户 呵呵哒 发表

大胆猜测。一个本体,其他的都只是快捷方式。

最简单好用的 VPS,没有之一,注册立得 100 美金
comments powered by Disqus

See Also

如何搜索百度云盘里的资料?

知乎用户 betasam 发表 先谢邀。 2019.9.9 更新。 因为近期网盘搜索严打期,很多原先好用的网盘都在自我整改,或者已经无法使用了,再更新一贴。 目前 52pansou 已经停用了,但没明说是整改中还是永久下线了。原先推荐的那 …

如何看待 Pandownload 被查后百度遭受一片骂声?

知乎用户 alex 发表 百度被骂活该,从上到下三观有问题,竞价排名,血友病吧,魏则西(自己去看百度百科,甩锅知乎还锁定词条,拒不认错) 百度盘,都 2020 年了,下载 6kB/s,和我 20 多年前用 56k 调制解调器下载一个速度,不 …

你为什么不再续费百度网盘会员了?

知乎用户 燃犀 发表 网盘这个行业其实比较特殊。 有些人总说,如果不是市面上只剩下百度网盘,打死也不会用百度网盘。 其实这句话很现实,又很真实。 那么问题来了,为什么市面上只剩下百度网盘。 几年前曾经还有过百盘大战的盛况: 金山网盘、迅雷快 …