温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

网盘进化史就这样(上)——原理简析

发布时间:2020-06-26 23:45:13 来源:网络 阅读:1173 作者:yerikyu 栏目:云计算

网盘至今已经发展多年,依稀记得从12年开始的网络上出现了大量的网盘服务,比如以115网盘为代表的各类网盘,那个时候能叫得上号的公司都开展自己的网盘服务,在互联网服务中刷刷存在感,后来又纷纷倒闭,想想看,现在还存活的网盘服务还有哪些呢,百度网盘、华为云盘、腾讯微云等。这些大厂还在提供这些服务,那什么是网盘呢?这款产品真的离我们这么远吗?那倒未必,且看我们来详细体验网盘进化史。

网盘是啥?

这玩意真的是一个网络大盘子?那倒不是,其实这个也是云服务中的一种,其本来的面目准确的说这个应该是一个网络存储系统,其名为即NAS,Network Area Storage。这么高大上的名词暂时搁置一边,我们先将目光拉回来,思考一个问题,拍照之后我们的手机怎么存一张照片?快门咔嚓一声之后,感光模块形成图像,手机的CPU会对图像进行处理,形成一份文件,之后从内存中读取出来,保存在手机存储空间中后缀为.jpg。
网盘进化史就这样(上)——原理简析
这个过程看起来挺简单的,使用到的功能是计算机软件系统组成中的一部分称为文件管理系统,这个系统在至今仍是非常重要的存储管理工具,当然了这个工具和前面提到的NAS有着重要的借鉴意义,因为在这个将图片(文件)存到手机存储的过程,IT工程师们就起了个名字,本地存储。那么我们当本地存储满了之后怎么办咧,只能清除旧图片呀,不然怎么继续存?但是小仙女们是很傲娇的,照片这么珍贵,每一张都是精品怎么可以说删就删?既然手机存不了那么多,那就换手机啊,换个更大的不就行了?换更大的过程,存储工程师,起名为纵向升级,开发工程师则是说迭代升级,这些其实都是说同一件事。嗯,就这一点我也觉得IT人有点无聊了。那没钱怎么办呐,我还想各种升级啊!那我插存储卡行不行啊,一张卡8g、16g我买啊,嗯,在手机有拓展槽的前提下,确实可以这么做,在存储工程中,这个操作称为横向升级。可,问题又来了,现在有多少手机带扩展槽?不急不急,还有新的操作。

放云上

云在哪?天上呀,那图片怎么上天呀,通过网络呀,我们刚才看图会知道这个.jpg文件会从内存保存到本地上,现在会通过网络传输,不再到本地啦,跑去天上了,其实就是网络服务商(Internet Service Provider,比如百度,腾讯)的电脑(其实就是服务器)上。从手机到云这个传输和存到人家设备上的过程就需要依靠一个简单的网络,网络工程师们对这个过程起了个名字,网络区域存储Network Area Storage。
网盘进化史就这样(上)——原理简析
现今云的概念越来越充实,大家都可以使用的叫做公有云,只有你和你的朋友才可以用的叫做私有云,当然了,你同意部分空间分享给大家一起用就是叫做混合云啦。云无边无际,时而在东时而西,咱压根就不知道这些精美图片(文件)存放在哪。各位看官,你用起来放心嘛?
为何不自己动手来搭建一个云盘呢?

实现思路

计算机网络发展数十年,仍然离不开TCP/IP协议栈,网盘亦然,手机和云之间的底层连接仍然是一个TCP的服务端和客户端的沟通,这个沟通的过程起名三次握手。
网盘进化史就这样(上)——原理简析
这简单的三句对话,就是握手的过程啦(是不是有种打嘴炮的感觉~~),打过招呼之后当然就可以是发图(文件)啦,这在30年前肯定是这么做的, 但是呢,这个过程真的烦。发送和接收方都要考虑很多事情,比如,发送的图片会不会太大,太大了是不是可以切小一些,如果切小了的话对方,收到了怎么拼回去呀,我怎么知道对方有没有收到图啊……这些问题在每一份文件的传输过程都要考虑,你说烦不烦,反正考虑多了,肯定会秃的。于是网络工程师们经过多方努力,将这些交流过程全部打包,放在一个大盒子里面,称为http,好了,现在我们知道了http说tcp的传输升级版,青出于蓝而胜于蓝,http可以更加方便的发送文件了,要不要切小文件,发送多快这些事情统统不用考虑了,这产品给你办好了。
接着影响世界进程的程序猿来了,他们用双手,指挥http自动的发送发送和接受各种各样不可描述的文件。程序猿一多肯定会吵架,你看那个php不是最优秀的语言这个梗玩了多少年了,还不是在继续吵着,于是一群糟老头跳出来说,别吵,我们全部要遵守一个约定,你好,他好,大家好,才是真的好,约定名称为RESF,你们你要做的就是各自实现RESFful API,OK?
嘿,还别说交流规范一些,沟通成本低了,java、python、go……这些语言工具搭建的http服务端都可以好好说话了。然而,问题又来了,这群怪蜀黍,其他人怎么知道程序猿说的都是啥啊,呵,难怪说世界上只有10种人,一种懂二进制,一种不懂。我们只用这个就可以完成数据的传输发送,但没办法啊,生存还是要的,得把你们服务好了,才会心甘情愿给我们发工资啊。你们才是老板好不好Orz
网盘进化史就这样(上)——原理简析
我们通过终端,点击若干按钮就可以实现文件的远程上传和下载,然而面对非程序猿来说,这样的操作真的有些无奈的。
网盘进化史就这样(上)——原理简析
所以为了让你们看的舒服,操作愉快,体验和免费同在,程序猿们把这个过程又重新包装了一下,说这个是大盘子,你们啥东西都能放进去,保证安全,随时取用,空间暂时给你们2T,要是充钱,还能戴上皇冠,上传更快和下载更强
网盘进化史就这样(上)——原理简析
这些都是最终的开发工程师们代码的劳动成果,也是产品经理们的设计结晶,更是服务商提供的给用户的良好体验的作品,那,如果我们自己动手做一个是不是会很刺激呢?读到这里想必大家都会猜到了,其实所谓云盘对于应用开发来说就是随时等待你访问的服务器,犹如一位资深管家,随时等待各位看官的召唤,我们所要做的就是上网,登陆帐号剩下的操作,比如自动上传保存,文件持久化管理、重复文件的删除等操作,都由管家来完成。
好啦,网盘的进化史回顾大致就这样啦,说白了就是从本地磁盘到网络磁盘的过程的变迁,这个依赖于计算机网络的发展,设想一下,当5G时代的到来,在网络质量良好的前提下,我们的手机通通不用再需要存储了,拍照的话觉得喜欢直接就存到网盘上,想要回顾的话,就去网盘找,下载的应用直接就存网盘上啦,想要运行就去网盘上运行,这样的畅想其实就是所谓云桌面的应用啦,对于网速越来越快的,带宽越来越宽的畅想,嘻嘻,未来可期。

下回讲简单源码实现

啰啰嗦嗦说了这么多,下篇文章分享简单代码实现

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI