• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Spring Boot的網(wǎng)絡(luò)云盤設(shè)計(jì)與實(shí)現(xiàn)

      2021-11-30 15:55:37肖盛文曾玉林
      科技經(jīng)濟(jì)導(dǎo)刊 2021年24期
      關(guān)鍵詞:云盤文件夾日志

      肖盛文,曾玉林

      (四川大學(xué)錦城學(xué)院 計(jì)算機(jī)與軟件學(xué)院,四川 成都 611731)

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

      1.功能需求

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

      管理員功能:管理員擁有賬戶的登錄、注銷、頭像上傳的功能。管理員可以對(duì)用戶系統(tǒng)所有功能進(jìn)行設(shè)置,其中主要包括了對(duì)所有系統(tǒng)用戶的運(yùn)行權(quán)限設(shè)置,通過此功能可以給用戶設(shè)置或添加特定權(quán)限以方便用戶使用,也可以通過此功能限制非法用戶的登錄使用。管理員可以對(duì)用戶云盤空間進(jìn)行資源分配,設(shè)置云盤空間大小等。管理員系統(tǒng)能夠?qū)ψ杂脩舻南到y(tǒng)日志信息進(jìn)行實(shí)時(shí)管理,方便了系統(tǒng)管理員查看注冊用戶的系統(tǒng)運(yùn)行以及操作過程的記錄。管理員可以對(duì)用戶數(shù)據(jù)進(jìn)行備份管理。

      2.性能需求

      網(wǎng)絡(luò)云盤管理系統(tǒng)的使用者主要為需要對(duì)數(shù)字信息進(jìn)行管理的用戶?;谏鐣?huì)上一些的座談以及市場調(diào)研等,發(fā)現(xiàn)網(wǎng)絡(luò)云盤管理系統(tǒng)所需要的基本性能特點(diǎn)表現(xiàn)為響應(yīng)時(shí)間快、可修改性強(qiáng)、界面簡潔、方便新手用戶的使用。由于網(wǎng)絡(luò)云盤管理系統(tǒng)需要承受大量用戶的并發(fā)訪問,因此需要考慮“高并發(fā)技術(shù)”這一廣義的概念,在設(shè)計(jì)之初,就要貫穿整個(gè)項(xiàng)目,從服務(wù)器到數(shù)據(jù)庫設(shè)計(jì)等環(huán)節(jié)解決高并發(fā)帶來的問題[1]。

      3.系統(tǒng)開發(fā)環(huán)境

      網(wǎng)絡(luò)云盤管理系統(tǒng)采用BS 架構(gòu),主要應(yīng)用于windows 系統(tǒng)上,運(yùn)用Spring Boot、mybatis、mvc 框架來進(jìn)行設(shè)計(jì),編譯環(huán)境采用JDK1.8、maven3.6,數(shù)據(jù)庫采用MySQL5.7,服務(wù)器代理工具采用Nginx1.9。

      4.系統(tǒng)架構(gòu)設(shè)計(jì)

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

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

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

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

      業(yè)務(wù)層設(shè)計(jì):本層主要負(fù)責(zé)對(duì)數(shù)據(jù)訪問層的操作,通過調(diào)用Dao 層里的方法,把需要分頁顯示的數(shù)據(jù)封裝為一個(gè)分頁實(shí)體對(duì)象。將該層類對(duì)象注入IOC 容器,通過模塊控制層調(diào)用相應(yīng)的方法。

      模塊控制層:本層主要功能是用于負(fù)責(zé)具體的各個(gè)業(yè)務(wù)管理模塊流程的控制,在此通過調(diào)用各個(gè)具體業(yè)務(wù)層的接口來進(jìn)行流程控制。在各個(gè)業(yè)務(wù)模塊控制類中接收前端發(fā)送的請(qǐng)求,并調(diào)用業(yè)務(wù)層相對(duì)應(yīng)的方法,把數(shù)據(jù)以json 鍵值對(duì)的形式返回給前端[1]。

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

      5.系統(tǒng)優(yōu)化設(shè)計(jì)

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

      6.結(jié)語

      本文的網(wǎng)絡(luò)云盤實(shí)現(xiàn)了管理數(shù)字信息等功能,為用戶提供了一個(gè)方便、安全且高效的云存儲(chǔ)平臺(tái),有效地解決用戶對(duì)于數(shù)字化信息管理這一需求。從高并發(fā)角度,數(shù)據(jù)加密角度對(duì)系統(tǒng)優(yōu)化,提高了系統(tǒng)的安全性能以及用戶體驗(yàn)感。展望未來,對(duì)于數(shù)字化資源管理的需求將越來越大,所以針對(duì)網(wǎng)絡(luò)云盤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是非常具有意義的。

      猜你喜歡
      云盤文件夾日志
      云盤山
      磁力文件夾
      云盤不再單打獨(dú)斗,阿里云盤生態(tài)體驗(yàn)
      一名老黨員的工作日志
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      游學(xué)日志
      調(diào)動(dòng)右鍵 解決文件夾管理三大難題
      云端難題巧解決
      阿里發(fā)布SSD云盤 性能大幅提升
      TC一鍵直達(dá)常用文件夾
      電腦迷(2015年1期)2015-04-29 21:24:13
      卫辉市| 嘉鱼县| 达州市| 荥经县| 阿拉善左旗| 资兴市| 襄汾县| 招远市| 衢州市| 五河县| 阿鲁科尔沁旗| 顺义区| 陵川县| 南郑县| 读书| 甘泉县| 城步| 永胜县| 云南省| 南澳县| 岳普湖县| 商南县| 灵武市| 工布江达县| 天峻县| 婺源县| 磐石市| 紫阳县| 五指山市| 攀枝花市| 新邵县| 确山县| 甘肃省| 广宁县| 镇雄县| 大名县| 邓州市| 灵璧县| 柞水县| 陇西县| 炎陵县|