?

基于Spring Boot的網絡云盤設計與實現

2021-11-30 15:55肖盛文曾玉林
科技經濟導刊 2021年24期
關鍵詞:云盤文件夾日志

肖盛文,曾玉林

(四川大學錦城學院 計算機與軟件學院,四川 成都 611731)

隨著現代計算機科學技術和5G 網絡的飛速發展,傳統數據資源管理的方式已經變得不再適用于當下這個高速發展的社會,而且伴隨著我國數據資源總量的增加和不斷拓寬,在有限的網絡帶寬下如何高效、快捷地利用和傳輸我國各地的數據資源也已成為一個重要課題。網絡云盤管理系統是一個由多門技術緊密相連、綜合交叉而形成的針對用戶信息管理的軟件,其主要作用是用戶利用電腦或者其他終端設備對信息的管理操作,為人們提供了一個便捷、安全、傳輸效率高的云存儲平臺系統。

1.功能需求

用戶功能:一是用戶可以隨時隨地通過網頁訪問網絡云盤系統,通過郵箱或者電話號碼,填寫個人信息,設置密碼進行注冊。二是用戶通過注冊后,登錄密碼即可訪問系統。三是用戶登錄本系統后,可通過電腦、手機對云盤空間進行編輯,可以在云盤中實現對文件夾的創建、刪除與命名。四是用戶隨時都可以選擇本地的文件,進行文件的上傳、下載、分享、命名與刪除,其中文件上傳功能所支持的文件數據類型包含了所有文檔類型的數據,以及圖片類型的數據、音頻類型的數據、視頻類型的數據、壓縮文件類型的數據。

管理員功能:管理員擁有賬戶的登錄、注銷、頭像上傳的功能。管理員可以對用戶系統所有功能進行設置,其中主要包括了對所有系統用戶的運行權限設置,通過此功能可以給用戶設置或添加特定權限以方便用戶使用,也可以通過此功能限制非法用戶的登錄使用。管理員可以對用戶云盤空間進行資源分配,設置云盤空間大小等。管理員系統能夠對注冊用戶的系統日志信息進行實時管理,方便了系統管理員查看注冊用戶的系統運行以及操作過程的記錄。管理員可以對用戶數據進行備份管理。

2.性能需求

網絡云盤管理系統的使用者主要為需要對數字信息進行管理的用戶?;谏鐣弦恍┑淖勔约笆袌稣{研等,發現網絡云盤管理系統所需要的基本性能特點表現為響應時間快、可修改性強、界面簡潔、方便新手用戶的使用。由于網絡云盤管理系統需要承受大量用戶的并發訪問,因此需要考慮“高并發技術”這一廣義的概念,在設計之初,就要貫穿整個項目,從服務器到數據庫設計等環節解決高并發帶來的問題[1]。

3.系統開發環境

網絡云盤管理系統采用BS 架構,主要應用于windows 系統上,運用Spring Boot、mybatis、mvc 框架來進行設計,編譯環境采用JDK1.8、maven3.6,數據庫采用MySQL5.7,服務器代理工具采用Nginx1.9。

4.系統架構設計

數據庫設計:數據庫管理著網盤系統的數據信息,其在遇到高并發大量數據的請求時,對數據庫的優化可以大大增加系統性能。MYSQL 一個數據庫表的日均承載并發數據量通常是百萬數量級,如果數據量再往上增長,其性能就一定會出現大幅度的下降,所以為了有效地減輕數據庫在高并發情況下的運行壓力,本項目采用分庫設計,其根據用戶表中的id 進行水平切分,以5 萬為分界線,具體設計如下[2]:

用戶信息表user Infor 用來存儲系統用戶和管理員的所有相關信息,字段名包含了用戶id、用戶創建時間、用戶修改時間、用戶名、用戶密碼、用戶性別、用戶郵箱、用戶電話、用戶頭像、用戶狀態碼以及用戶權限id。系統文件夾表System Folder 用來存儲用戶所創建文件夾的相關信息,字段名包含了文件夾id、文件夾創建和修改的時間、文件名、父級文件夾id、用戶id以及文件夾狀態碼。其中父級文件夾id 用于關聯自身文件夾id、用戶id 用于關聯用戶表中用戶id。系統文件表System File用來存儲系統用戶所上傳文件的各種相關數據信息,字段名包含了文件的id、文件的創建與最后一次修改時間、文件的名稱、文件狀態、文件大小、所屬的文件夾id、所屬的用戶id、文件的存儲路徑、文件的md5 值。系統權限表System Permissions用來存儲用戶的權限信息,字段名包含了權限id、用戶等級、硬盤空間大小、用戶簽到天數。五是系統日志記錄表,用來存儲用戶操作記錄的信息,字段名包含了日志id、日志創建與修改的時間、用戶名、用戶操作信息。文件分享表用來存儲用戶分享文件的信息,字段名包含了文件分享id、文件創建與修改的時間、分享時間、接收密碼、分享狀態、分享文件名、分享文件的類型、所屬用戶的id。七是數據庫備份表,擁有的字段有數據id、數據創建時間與修改時間、備份文件名、備份用戶名。

登錄攔截設計:為了防止非法用戶登錄系統進行破壞,網絡云盤系統設置了登錄攔截。第一步在類Login Interceptor 類中實現Handler Interceptor 接口,重寫preHandle 方法,獲取登錄時所有的session 信息,如果關于用戶的信息全部為空,則判斷為非法用戶,強制將頁面按照重定向轉移到登陸頁面;若該信息值不為空,則予以放行。第二步是向配置類中添加攔截器信息,并設置不需要經過攔截器的請求和前端頁面。

數據訪問層設計:User Dao 接口中,定義了根據用戶的id查詢用戶所有信息的方法;根據用戶姓名查詢用戶所有信息的方法;對用戶信息添加、編輯,根據用戶id 刪除用戶信息,查詢用戶總條數的方法。File Dao 接口中,定義了數據文件的添加、編輯,查詢的方法;根據文件id 獲取特定文件,刪除特定文件,獲取所有文件,獲取指定目錄下的文件的方法;查詢文件的MD5 值,根據文件類型來查詢所有文件,批量更新文件,獲取文件總數量,獲取文件大小的方法。Folder Dao 接口中,定義了對文件夾的添加、編輯,查詢所有文件夾的方法;根據id 和指定文件夾名稱進行查詢的方法;根據id 和指定文件夾名稱進行刪除的方法;獲取所有指定文件夾下的所有文件夾列表,獲取所有指定文件夾下的子文件夾列表,批量修改文件夾,批量刪除文件夾,獲取文件夾數量的方法。Log Dao 接口中,定義了日志添加、編輯,查詢所有日志記錄,根據日志id 刪除單條日志,批量刪除日志的方法。Permissions Dao 接口中,定義了用戶權限的添加、編輯的方法。Share Dao 接口中,定義了文件分享信息的添加、編輯,根據id 查詢分享文件的方法;根據id 刪除分享文件的信息,查詢分享文件的列表,查詢分享次數,查詢分享文件是否過期的方法。

業務層設計:本層主要負責對數據訪問層的操作,通過調用Dao 層里的方法,把需要分頁顯示的數據封裝為一個分頁實體對象。將該層類對象注入IOC 容器,通過模塊控制層調用相應的方法。

模塊控制層:本層主要功能是用于負責具體的各個業務管理模塊流程的控制,在此通過調用各個具體業務層的接口來進行流程控制。在各個業務模塊控制類中接收前端發送的請求,并調用業務層相對應的方法,把數據以json 鍵值對的形式返回給前端[1]。

一是驗證碼控制器,在前端發送驗證碼請求時,調用驗證碼生成器來生成驗證碼,將驗證碼的信息存入session,并將驗證碼的圖片以字節流的形式傳給前端進行驗證。二是用戶管理控制器,用于實時控制管理系統中用戶的登錄,注冊,注銷,以及用戶的CRUD 操作,接收對用戶操作的請求,并調用業務層中的方法對用戶數據進行操作。三是文件下載控制器,用于用戶下載他人分享的文件,先根據下載鏈接查詢出需要下載的文件,再調用response 為其添加頭信息,指定這個文件大小,在瀏覽器中能夠顯示下載進度,最后把文件以流的形式發送到前端。四是文件上傳控制器,用于控制文件的上傳,從前端獲取文件對象,首先判斷文件大小是否大于總空間大小,如果文件大于總空間大小,則直接返回錯誤信息;如果文件大小小于內存空間大小,則計算文件的MD5 值,根據計算的MD5 值與該用戶數據庫中存儲所有的文件MD5 值進行比較,判斷其是否已經存在,如果存在,則報出錯誤信息;如果不存在,則開始上傳,并將文件的信息存入數據庫。五是文件顯示控制器。先從session 里獲取用戶信息,再根據用戶信息查詢其擁有的文件,首先查詢該用戶根目錄下所有的文件以及文件夾信息,如果不是根目錄,再根據文件夾id 查詢其子目錄文件夾以及文件信息。六是文件CRUD 控制器,對于查詢請求,根據文件名字進行模糊匹配或者根據文件類型進行查詢;對于添加請求,首先判斷其是文件或是文件夾的添加,再調用業務層中的方法。對于刪除請求,首先要判斷待刪除的是文件還是文件夾類型,如果是文件類型,則直接刪除;如果是文件夾類型,則直接遞歸刪除其子文件夾下的所有文件以及文件夾。七是文件分享控制器,顯示分享頁面時,首先判斷分享的文件是否已經刪除或者分享時間過期,如果刪除或是過期則返回錯誤信息。如果是加密分享,則需要輸入分享密碼才能顯示。八是日志控制器,用于對日志信息的控制管理,接收查詢日志信息的請求,通過調用業務層里對應的方法,把日志信息封裝為一個分頁對象;接收刪除日志的請求,將待刪除日志的id 存入一個數組,通過數組遍歷依次刪除對應的日志信息。九是權限控制器,用于對用戶權限的CRUD 操作。

5.系統優化設計

在用戶文件上傳和下載的過程中,如果文件上傳和下載的體量過大,由于網速帶寬不能滿足當下的需求,所以網絡云盤系統在文件上傳和下載時引入多線程機制,首先在主線程中把傳送的文件名稱發送給服務器,然后將待上傳或下載的文件分為多個子模塊,再建立多個子線程,每個子線程負責傳輸其中一塊數據,最終待所有線程執行完畢,把所有資源結合起來。這樣,用戶在上傳和下載大體量的文件時,不僅提高系統效率,還大大增加了用戶的體驗感[3]。因為存儲空間有限,所以需要最大限度地使用云盤空間,為了防止重復的文件上傳到云盤,在上傳文件時,會對文件進行MD5 加密得到相應的密文,通過用戶id 查詢數據庫中相對應的密文進行比較,如果驗證相等,則提示用戶上傳文件在云盤空間中已存在,不用再次上傳[4]。

6.結語

本文的網絡云盤實現了管理數字信息等功能,為用戶提供了一個方便、安全且高效的云存儲平臺,有效地解決用戶對于數字化信息管理這一需求。從高并發角度,數據加密角度對系統優化,提高了系統的安全性能以及用戶體驗感。展望未來,對于數字化資源管理的需求將越來越大,所以針對網絡云盤管理系統的設計與實現是非常具有意義的。

猜你喜歡
云盤文件夾日志
一鍵搬家!輕松實現從百度網盤到阿里云盤的直傳
一名老黨員的工作日志
編輯精選APP
Fast Folders,讓你的文件夾四通八達
扶貧日志
雅皮的心情日志
雅皮的心情日志
摸清超標源頭 大文件夾這樣處理
調動右鍵 解決文件夾管理三大難題
不容忽視的空文件夾
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合