網盤進化史就這樣(上)——原理簡析

網盤至今已經發展多年,依稀記得從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時代的到來,在網絡質量良好的前提下,我們的手機通通不用再需要存儲了,拍照的話覺得喜歡直接就存到網盤上,想要回顧的話,就去網盤找,下載的應用直接就存網盤上啦,想要運行就去網盤上運行,這樣的暢想其實就是所謂雲桌面的應用啦,對於網速越來越快的,帶寬越來越寬的暢想,嘻嘻,未來可期。

下回講簡單源碼實現

囉囉嗦嗦說了這麼多,下篇文章分享簡單代碼實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章