亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java 的網(wǎng)盤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2022-11-17 00:22:35孫詩(shī)軍段元梅
        無(wú)線互聯(lián)科技 2022年1期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶

        孫詩(shī)軍,段元梅

        (湖南科技學(xué)院 信息工程學(xué)院,湖南 永州 425199)

        0 引言

        隨著當(dāng)今計(jì)算機(jī)技術(shù)與互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,現(xiàn)代社會(huì)正以不可想象的速度產(chǎn)生各種各樣的數(shù)據(jù),根據(jù)IDC 預(yù)測(cè),全球數(shù)據(jù)量將由2016 年的16.1ZB 增長(zhǎng)至2025 年的163.0ZB。在這種情況下,云端存儲(chǔ)逐漸地體現(xiàn)出了其優(yōu)越性。云盤的數(shù)據(jù)是存放在云端的服務(wù)器上的,用戶要使用到云盤的數(shù)據(jù)服務(wù)就必須以互聯(lián)網(wǎng)為入口,訪問(wèn)互聯(lián)網(wǎng)的最簡(jiǎn)單的方式就是通過(guò)Web 瀏覽器。B/S 架構(gòu)的主要特點(diǎn)是分布性強(qiáng),維護(hù)、開發(fā)方便,本文所做的網(wǎng)盤系統(tǒng)就是基于B/S 架構(gòu),以實(shí)現(xiàn)一款實(shí)用、可靠、可擴(kuò)展的輕量級(jí)網(wǎng)盤為目標(biāo)[1]。

        1 網(wǎng)盤的設(shè)計(jì)與實(shí)現(xiàn)

        1.1 需求分析

        用戶模塊主要是對(duì)自己的賬號(hào)擁有注冊(cè)、登錄、修改密碼的功能,新用戶的密碼要加密存儲(chǔ)在后臺(tái)。在用戶注冊(cè)完成時(shí)網(wǎng)盤系統(tǒng)要為新的用戶分配兩塊權(quán)限不同的文件空間,加以私有/公開的權(quán)限控制,私有空間中的文件和目錄只有自己能查看修改,公有空間中的文件和目錄可以分享給他人查看并下載。用戶的賬號(hào)要有存儲(chǔ)空間的限制,不能無(wú)限制地向網(wǎng)盤上傳文件[2]。

        在文件模塊,最重要的功能是上傳文件。要保證用戶的使用體驗(yàn),就要具備上傳速度快的特性,上傳中的文件需要有暫停的功能,并且由于網(wǎng)絡(luò)的不穩(wěn)定性,很有可能發(fā)生文件上傳到一半就失敗的情況,因此要能夠支持?jǐn)帱c(diǎn)續(xù)傳功能。對(duì)于硬件設(shè)備來(lái)說(shuō),重復(fù)的文件會(huì)降低空間利用率,上傳的文件必須能夠去重,相同的文件保證在服務(wù)器端只存儲(chǔ)一份[3]。

        目錄模塊,是用戶對(duì)于自己網(wǎng)盤中的文件以及目錄,需要有創(chuàng)建、刪除、移動(dòng)、重命名功能。用戶訪問(wèn)目錄要能像在電腦上訪問(wèn)文件夾一樣,頁(yè)面以列表的方式顯示出目錄下的子目錄、文件,能對(duì)列表中的目錄和文件進(jìn)行操作,還要有一條能夠進(jìn)行目錄導(dǎo)航的路徑,點(diǎn)擊路徑上的目錄進(jìn)行目錄跳轉(zhuǎn)[4]。

        1.2 用戶模塊的實(shí)現(xiàn)

        1.2.1 注冊(cè)

        前臺(tái)需要傳入用戶名、密碼、郵箱字段。初始化用戶的屬性,為用戶分配初始的私有空間根目錄和公有空間根目錄。設(shè)置密碼方面,為了保證用戶的密碼以密文形式存儲(chǔ),需要進(jìn)行加鹽加密,使用當(dāng)前時(shí)間戳作為鹽值,為用戶的密碼進(jìn)行加密。如果前臺(tái)傳入的用戶名或郵箱在數(shù)據(jù)庫(kù)中有重復(fù),前臺(tái)需要有相應(yīng)的提示。注冊(cè)成功后,頁(yè)面跳轉(zhuǎn)到登錄頁(yè)面。

        1.2.2 登錄

        前臺(tái)需要傳入用戶名、密碼字段。后臺(tái)需要進(jìn)行兩次校驗(yàn),分別是校驗(yàn)用戶的賬號(hào)是否存在,賬號(hào)密碼是否匹配。驗(yàn)證密碼時(shí),需要從數(shù)據(jù)庫(kù)中取出該用戶注冊(cè)時(shí)使用的鹽值,對(duì)前臺(tái)傳進(jìn)來(lái)的明文密碼進(jìn)行加密,然后再與數(shù)據(jù)庫(kù)中的密文比對(duì)。登錄失敗時(shí),前臺(tái)要有相應(yīng)的提示,登錄成功后,頁(yè)面跳轉(zhuǎn)道網(wǎng)站的首頁(yè)。

        1.3 目錄模塊的實(shí)現(xiàn)

        1.3.1 訪問(wèn)目錄

        前臺(tái)需要傳入一個(gè)目錄的ID,后臺(tái)需要返回給前臺(tái)當(dāng)前目錄的路徑信息,以及當(dāng)前目錄下的所有文件和目錄。后臺(tái)拿到前臺(tái)傳過(guò)來(lái)的目錄ID 后,去數(shù)據(jù)庫(kù)中的DIR 表找到該ID 對(duì)應(yīng)的記錄,如果找不到需要報(bào)錯(cuò)。如果能找到,使用pDirId 字段遞歸查找到根目錄,得到該目錄的路徑。在DIR 表和USER_FILE 表中使用目錄id 以及當(dāng)前用戶ID 找出當(dāng)前目錄下所有目錄和文件。

        1.3.2 創(chuàng)建目錄

        前臺(tái)需要傳入當(dāng)前目錄的ID,新目錄的目錄名,在當(dāng)前目錄下創(chuàng)建一個(gè)新的目錄。后臺(tái)首先對(duì)目錄名進(jìn)行格式校驗(yàn),如果有非法字符則創(chuàng)建失敗并返回錯(cuò)誤信息給前臺(tái)。若目錄名沒(méi)有問(wèn)題,將當(dāng)前目錄的ID 作為新目錄的pDirId,記錄創(chuàng)建用戶的ID,存入數(shù)據(jù)庫(kù)。新目錄的權(quán)限跟隨父目錄及當(dāng)前目錄的權(quán)限。

        1.3.3 目錄重命名

        目錄重命名功能在點(diǎn)擊重命名按鈕后,打開Bootstrap 提供的Modal 窗口,綁定目錄ID 參數(shù)為一個(gè)表單參數(shù),輸入新的目錄名后,點(diǎn)擊確認(rèn)按鈕,提交目錄ID 和新目錄名到后臺(tái)。與創(chuàng)建目錄一樣,后臺(tái)對(duì)新的目錄名也進(jìn)行格式校驗(yàn)。校驗(yàn)通過(guò)后,拿到目錄的ID,找到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的記錄,更改DIR_NAME 字段即可。

        1.3.4 刪除目錄

        因?yàn)榇瞬僮鞑豢苫謴?fù),刪除目錄后會(huì)連帶目錄下的所有文件一起刪除,因此在調(diào)用后臺(tái)接口前,需要彈出二次確認(rèn)的提示。調(diào)用接口后,前臺(tái)向后臺(tái)傳入刪除的目錄的ID。后臺(tái)要在DIR 表中遞歸刪除該目錄下所有的子目錄,并且在刪除子目錄的過(guò)程中要?jiǎng)h除掉USER_FILE 表中子目錄下的文件。后臺(tái)執(zhí)行完后,前臺(tái)跳轉(zhuǎn)到之前所在目錄。刪除的文件,只在數(shù)據(jù)庫(kù)里取消與用戶的關(guān)聯(lián),并不在硬盤上將文件真的刪掉。通過(guò)每周一次的輪詢,將硬盤上與用戶關(guān)聯(lián)數(shù)為零的文件刪除。

        1.4 文件模塊的實(shí)現(xiàn)

        1.4.1 上傳文件

        這個(gè)功能是本項(xiàng)目中需要研究的一個(gè)重點(diǎn)。首先將上傳文件的關(guān)鍵點(diǎn)和可能遇到的一些問(wèn)題列出來(lái):如何提高上傳的速度,怎樣判斷上傳的文件數(shù)據(jù)中心是否已存在,傳輸?shù)揭话刖W(wǎng)絡(luò)異常要如何解決。第一,解決提高文件上傳的速度問(wèn)題。文件的上傳分為兩個(gè)步驟,第一個(gè)階段是在前端對(duì)文件進(jìn)行MD5 序列化,獲取文件的MD5 值,這個(gè)在后面的文件判重時(shí)需要用到。第二個(gè)階段是將文件上傳至服務(wù)器。對(duì)于文件上傳速度的優(yōu)化,就可以從這兩個(gè)階段入手。

        對(duì)于第一個(gè)階段,對(duì)數(shù)據(jù)量不大的小文件進(jìn)行MD5計(jì)算是比較快的,通常在幾秒內(nèi)就能完成,但對(duì)于100 MB 以上的文件,計(jì)算其MD5 值就很慢了。通過(guò)測(cè)試一個(gè)300 MB 的文件,發(fā)現(xiàn)對(duì)其進(jìn)行MD5 加密的總用時(shí)超過(guò)了2 分鐘,如果文件再大一些,用時(shí)還會(huì)更長(zhǎng)。

        對(duì)于第二階段來(lái)說(shuō),要優(yōu)化上傳的速度,可以采取提高上傳并發(fā)量這一策略,這一策略主要可以加快大文件的上傳速度。在前端使用JavaScript 腳本,對(duì)即將上傳的文件進(jìn)行分片,上傳的過(guò)程中可以通過(guò)并發(fā)的方式,同時(shí)上傳多個(gè)分片,并且每個(gè)分片都要加上當(dāng)前是第幾塊分片這一參數(shù),服務(wù)器在接收到這些分片后,對(duì)其進(jìn)行組裝,還原成上傳的文件。

        1.4.2 刪除文件

        前端向后臺(tái)傳遞一個(gè)文件ID 參數(shù),后臺(tái)在USER_FILE 表中對(duì)對(duì)應(yīng)的記錄進(jìn)行刪除,同時(shí)更新USER 表中的SIZE_USED 字段。因?yàn)橥粋€(gè)FILE 可能被多個(gè)用戶所引用,因此通過(guò)一個(gè)每周一次的輪詢,檢查FILE表中如果有的記錄被USER_FILE 表引用的次數(shù)為0,就刪除這條記錄,并且刪除對(duì)應(yīng)的存儲(chǔ)文件,釋放空間。

        2 測(cè)試

        通過(guò)對(duì)每個(gè)功能模塊、前端的顯示、邊界數(shù)據(jù)的檢測(cè)、數(shù)據(jù)庫(kù)的數(shù)據(jù)正確性進(jìn)行測(cè)試,測(cè)試結(jié)果表明該項(xiàng)目所完成的功能均能正常運(yùn)行。

        3 結(jié)語(yǔ)

        本文完成了基于Java 的網(wǎng)盤系統(tǒng)設(shè)的設(shè)計(jì)與實(shí)現(xiàn)。針對(duì)上傳這一功能不夠完善的缺點(diǎn),設(shè)計(jì)了一個(gè)方便實(shí)用的網(wǎng)盤系統(tǒng)。該網(wǎng)盤前端使用Bootstrap、WebUploader 兩款插件,通過(guò)Bootstrap 的柵格系統(tǒng)、內(nèi)置樣式進(jìn)行頁(yè)面的布局以及美化,通過(guò)WebUploader 配置了文件分片上傳,完成文件上傳的暫停、續(xù)傳、秒傳功能在前端的實(shí)現(xiàn)。后臺(tái)使用SpringBoot 進(jìn)行快速搭建,以Mysql 作為數(shù)據(jù)庫(kù),通過(guò)Mybatis 框架將Java 中的實(shí)體類與數(shù)據(jù)庫(kù)的表進(jìn)行映射,最終實(shí)現(xiàn)了所設(shè)計(jì)的網(wǎng)盤系統(tǒng)。

        猜你喜歡
        數(shù)據(jù)庫(kù)用戶
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        Camera360:拍出5億用戶
        100萬(wàn)用戶
        中文字幕一区二区三区四区五区| 国产精品亚洲最新地址| 成人高清在线播放视频| 在线观看免费无码专区| 日日猛噜噜狠狠扒开双腿小说| 91短视频在线观看免费| 国产三级在线观看不卡| 国产精品女老熟女一区二区久久夜 | 少妇激情高潮视频网站| 中文字幕亚洲精品无码| 99久久免费精品高清特色大片| 噜噜噜色97| 野花视频在线观看免费| 极品少妇小泬50pthepon| 亚洲国产毛片| 日本av在线精品视频| 国产一区二区长腿丝袜高跟鞋| 国产成人无码av一区二区| 俺也去色官网| 中文天堂一区二区三区| 77777亚洲午夜久久多喷| 久久久久亚洲精品无码网址色欲| 亚洲日韩区在线电影| 国家一级内射高清视频| 欧美多人片高潮野外做片黑人| 久久天天躁狠狠躁夜夜爽| 亚洲精品高清av在线播放| 中文字幕乱码在线人妻| 久久久久久久久蜜桃| 97在线视频免费| 青青草在线免费观看视频| 人妻丰满熟妇岳av无码区hd| 免费一区二区三区久久| 日韩精品一二区在线视频| 男女无遮挡高清性视频| 国产影片中文字幕| 日韩国产有码在线观看视频| 极品美女调教喷水网站| 免费国产黄网站在线观看可以下载| 免费无遮挡无码视频在线观看| 国产在线视频一区二区三区|