一、前言
在gitee和github里面基本上找不到一款好用概而、功能完善呼巷、且開放源碼的網盤系統(tǒng),有一些可以免費試用但是只提供安裝包赎瑰,于是在利用業(yè)務時間開發(fā)了一套輕量級且易于上手的網盤系統(tǒng)王悍,主要基于目前主流的前后端分離和微服務架構模式開發(fā),里面涉及很多的解決方案餐曼,適合沒有項目經驗的同學學習压储。
網盤系統(tǒng)的核心目的有兩個:
提供客戶端給業(yè)務系統(tǒng)集成,統(tǒng)一管理業(yè)務系統(tǒng)的文件源譬;
提供在線協(xié)調辦公集惋、管理個人文件的功能。系統(tǒng)會陸續(xù)更新和完善一些功能踩娘。
二刮刑、部署架構說明
三、技術棧說明
前端技術
①vue.js+ElementUI 作為基礎技術框架
②WebUploader.js做切塊上傳框架
后端技術
①Maven+SpringBoot+SpringDataJPA作為基礎架構
②Dubbo+Zookeeper作為服務治理架構
③Nacos作為配置中心
④Redis做分布式緩存养渴、過期監(jiān)聽
⑤Zookeeper做分布式鎖
⑥WebSocket+Netty做消息推送
⑦Solr做全文檢索引擎
⑧FastDFS做分布式文件系統(tǒng)
⑨基于Redis+token+自定義注解實現接口冪等性
四雷绢、功能說明
1、網盤系統(tǒng)
①上傳功能:主要是針對大文件的切塊上傳厚脉、秒傳习寸、文件夾上傳
②下載功能:主要是大文件的切塊下載;多文件(夾)合并傻工、壓縮下載
③文件分享:文件分享包括好友分享霞溪、私密鏈接分享孵滞、分享文件的轉存
④相冊管理:可以建立不同的相冊來管理圖片,并且可以圖片在線預覽功能
⑤回收站:刪除的文件進入回收站鸯匹,可以進行還原或者徹底刪除
⑥推送功能:主要是好友分享消息推送坊饶、過期消息推送、容量更新推送
⑦分布式鎖:主要是基于Zookeeper實現分布式鎖殴蓬,保證高并發(fā)情況下系統(tǒng)的數據安全
⑧過期監(jiān)聽:主要是基于Redis過期事件實現監(jiān)聽功能匿级,包括:分享失效監(jiān)聽、刪除過期監(jiān)聽等
⑨日志采集:通過AOP埋點的方式進行采集用戶請求日志染厅,并遠程傳輸到日志服務端痘绎;自定義Dubbo的Filter實現鏈路ID的生成
⑩文件搜索:集成Solr框架實現全文搜索功能
?文件存儲:集成FastDFS框架實現文件分布式存儲
?其他瑣碎功能:比如,復雜肖粮、移動孤页、預覽、刪除涩馆、重命名行施、在線創(chuàng)建、在線編輯魂那、編輯歷史版本留痕等等
?Office在線編輯:后期更新
?h5版本客戶端:預計4月25號更新
?c/s版本客戶端:后期更新
?業(yè)務系統(tǒng)API客戶端:【已經完成】
?圖片新增水佣旰拧:后期更新
?圖片在線裁剪:后期更新
2、后臺系統(tǒng)
①組件管理:主要管理文件的預覽和編輯組件
②類型管理:主要是管理文件的格式涯雅、對應的圖標鲜结、對應的預覽和編輯組件
③日志管理:存儲和展示業(yè)務系統(tǒng)的操作日志記錄,并且可以根據追蹤ID來關聯所有的日志信息