Java如何搭建一個(gè)個(gè)人網(wǎng)盤
前言
本文適合有 Java 基礎(chǔ)知識(shí)的人群,跟著本文可學(xué)習(xí)和運(yùn)行 Java 網(wǎng)盤項(xiàng)目。
今天給大家?guī)?lái)一款開(kāi)源 Java 版網(wǎng)盤項(xiàng)目—— kiftd-source,本文將用 3 分鐘帶大家搭建一個(gè)個(gè)人網(wǎng)盤,技術(shù)便利生活,你值得擁有~
項(xiàng)目地址:https://github.com/KOHGYLW/kiftd-source
一、項(xiàng)目介紹
kiftd 是一款開(kāi)源、使用簡(jiǎn)單、功能完整的 Java 網(wǎng)盤/云盤系統(tǒng)。支持在線視頻播放、文檔在線預(yù)覽、音樂(lè)播放、圖片查看等功能的文件云存儲(chǔ)平臺(tái)。
技術(shù)棧
- JDK 版本:1.8.0_131
- 項(xiàng)目管理框架:Maven(m2e 1.8.0 for Eclipse)
- Archetype:mavem-archetype-quickstart 1.1
- Spring Boot:SpringBoot 基于 Spring 開(kāi)發(fā),旨在提高微服務(wù)的開(kāi)發(fā)效率。
- MyBatis:一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。
- H2 DB:一款開(kāi)源的嵌入式數(shù)據(jù)庫(kù)引擎,采用 Java 語(yǔ)言編寫(xiě),不受平臺(tái)的限制。
二、網(wǎng)盤搭建
2.1 Windows 環(huán)境運(yùn)行
2.1.1 下載安裝包
直接從官網(wǎng)下載最新的安裝包,安裝地址:https://kohgylw.gitee.io/
項(xiàng)目比較溫馨,支持三種下載方式:Github、阿里云、Gitee 下載。如下圖:
2.1.2 檢查配置
這里主要檢查一下本地 JDK 是否已安裝,在命令行窗口執(zhí)行 java -version 查看 Java 版本。如下所示表示已安裝,就可以進(jìn)行下一步操作。
java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
2.1.3 運(yùn)行 jar
雙擊 kiftd-1.0.29-RELEASE.jar,或者在命令行執(zhí)行 java -jar kiftd-1.0.29-RELEASE.jar 命令都運(yùn)行可以jar 文件,會(huì)彈出安裝的界面,如下圖:
這個(gè)界面的這幾個(gè)按鈕說(shuō)明一下:
- 開(kāi)啟(Start):運(yùn)行網(wǎng)盤服務(wù),初次啟動(dòng)的端口默認(rèn)是 8080。
- 文件(Files):這個(gè)按鈕菜單中主要有網(wǎng)盤文件導(dǎo)入,導(dǎo)出,刪除,刷新功能。
- 設(shè)置(Setting):設(shè)置功能主要可以設(shè)置網(wǎng)盤的服務(wù)端口,網(wǎng)盤的物理存儲(chǔ)路徑等信息。
- 退出(Exit):關(guān)閉網(wǎng)盤系統(tǒng)。
點(diǎn)擊 開(kāi)啟(Start) 按鈕即可運(yùn)行網(wǎng)盤,這里我設(shè)置的端口是 8090,在瀏覽器訪問(wèn): localhost:8090,運(yùn)行效果如下圖:
項(xiàng)目是運(yùn)行了,發(fā)現(xiàn)一個(gè)問(wèn)題無(wú)法上傳文件?因?yàn)槲覀兺说卿涍@個(gè)操作。點(diǎn)擊系統(tǒng) 登錄按鈕,填入賬號(hào)和密碼即可登錄。那么登錄密碼在哪里呢?這里我直接告訴大家,用戶信息在 conf/account.properties,文件內(nèi)容如下:
#<This is the default kiftd account setting file. > #Sun May 10 21:56:28 CST 2020 admin.pwd=000000 #用戶名.密碼=000000 authOverall=l admin.auth=cudrm
- 用戶名:admin
- 密碼:000000
這樣登錄之后就可以使用網(wǎng)盤的所有功能了。
2.2 Linux 環(huán)境運(yùn)行
2.2.1 安裝 Screen 工具
Screen 工具能夠虛擬出一個(gè)終端并執(zhí)行相應(yīng)的操作。因?yàn)楸酒v的網(wǎng)盤需要一個(gè)終端。執(zhí)行如下命令安裝 Screen:
yum install screen
2.2.2 Screen 常用命令
screen -S myScreen #創(chuàng)建虛擬終端
java -jar kiftd-1.0.29-RELEASE.jar -console #在虛擬終端中以命令模式啟動(dòng) kiftd
screen -r myScreen #返回之前的虛擬終端并繼續(xù)操作 kiftd。
2.2.3 命令行操作
在 Linux 環(huán)境上使用 console 模式啟動(dòng)的效果是這樣的:
命令行輸入 -start 即可運(yùn)行項(xiàng)目。例如輸入 -files 控制臺(tái)顯示是這樣的:
其實(shí)和 Windows 上一樣,包括文件導(dǎo)入,導(dǎo)出,刪除功能,多了幾個(gè)命令是查看文件,切換目錄等功能。
三、開(kāi)發(fā)環(huán)境運(yùn)行
3.1 下載項(xiàng)目
兩種方式下載項(xiàng)目,使用 GitBash 下載項(xiàng)目:
git clone https://github.com/KOHGYLW/kiftd-source.git
另外一種方式直接下載 zip 壓縮包,如下圖:
3.2 運(yùn)行
打開(kāi) kohgylw.kiftd.mc.MC 類,進(jìn)行測(cè)試運(yùn)行。注意:本文使用 Eclipse 工具打開(kāi)。
3.3 閱讀代碼
3.3.1 前臺(tái)請(qǐng)求
就以創(chuàng)建目錄這個(gè)功能為例。我們先看前端功能。點(diǎn)擊“操作”->“新建文件夾”,填寫(xiě)文件夾名稱,點(diǎn)擊保存如下圖:
我們知道前臺(tái) 新建文件夾 功能調(diào)用的后臺(tái)接口是 newFolder.ajax
3.3.2 后端接口
通過(guò)前臺(tái)請(qǐng)求可知調(diào)用的后臺(tái)接口為 homeController/newFolder.ajax。打開(kāi)代碼實(shí)現(xiàn),我們會(huì)看到下面這個(gè)方法。
public String newFolder(final HttpServletRequest request) { ... //參數(shù)校驗(yàn)的部分代碼已省略 Folder f = new Folder(); f.setFolderId(UUID.randomUUID().toString()); f.setFolderName(folderName); f.setFolderCreationDate(ServerTimeUtil.accurateToDay()); if (account != null) { f.setFolderCreator(account); } else { f.setFolderCreator("匿名用戶"); } f.setFolderParent(parentId); int i = 0; while (true) { try { // 數(shù)據(jù)庫(kù)插入新建文件夾的數(shù)據(jù) final int r = this.fm.insertNewFolder(f); if (r > 0) { if (fu.isValidFolder(f)) { this.lu.writeCreateFolderEvent(request, f); return "createFolderSuccess"; } else { return "cannotCreateFolder"; } } break; } catch (Exception e) { f.setFolderId(UUID.randomUUID().toString()); i++; } if (i >= 10) { break; } } return "cannotCreateFolder"; }
四、功能說(shuō)明
4.1 上傳
點(diǎn)擊 操作,可以上傳文件和上傳文件夾,如下圖:
將本地需要上傳的文件,拖拽網(wǎng)盤頁(yè)面也可以上傳此文件。
4.2 視頻/音頻播放
上傳視頻到網(wǎng)盤,網(wǎng)盤也支持在線視頻播放,效果如下圖:
上傳音頻,例如我最喜歡 周杰倫
的歌曲,可以在線播放了。
4.3 快捷鍵使用
網(wǎng)盤還對(duì)一些常用功能添加了快捷鍵。功能和快捷鍵參照如下:
功能 | 快捷鍵 |
---|---|
上傳文件夾 | Shift +U |
上傳文件 | Shift +F |
新建文件 | Shift +N |
復(fù)制 | Shift +C |
剪切 | Shift +X |
刪除 | Shift +D |
4.4 配置文件修改
配置文件在項(xiàng)目 conf 目錄,包括兩個(gè)配置文件:
- account.properties:配置賬號(hào)信息,權(quán)限信息
- server.properties:服務(wù)器的配置文件,可配置服務(wù)器端口,緩沖文件大小等
4.5 在線預(yù)覽
網(wǎng)盤支持文檔 txt、pdf、docx、ppt 在線預(yù)覽功能,支持圖片的在線預(yù)覽。圖片預(yù)覽效果如下:
pdf 文件預(yù)覽效果如下:
4.6 分享下載鏈接
網(wǎng)盤也考慮文件的分享,它可以生成下載鏈接,瀏覽器訪問(wèn)下載鏈接就可以直接下載文件。選擇需要下載的文件,點(diǎn)擊 下載 按鈕,選擇 下載鏈接+,既可以生成文件下載鏈接。如下圖:
五、最后
教程至此已經(jīng)結(jié)束,你自己的網(wǎng)盤跑起來(lái)了嗎?網(wǎng)盤是不是還不錯(cuò)?而且搭建也特別簡(jiǎn)單。一些重要的東西就可以存放到自己的網(wǎng)盤啦!說(shuō)到底,編程語(yǔ)言只是工具,我們只要很好的使用工具,再加上自己天馬行空的思想,我想會(huì)創(chuàng)造出更多不可思議的項(xiàng)目。
Java 語(yǔ)言為什么經(jīng)久不衰,因?yàn)樗茏龅氖虑樘嗔耍疑鷳B(tài)也特別豐富。如果你也有興趣那就加入 Javaer 開(kāi)發(fā)者的大家庭吧!開(kāi)源分享讓我們彼此認(rèn)識(shí),有了開(kāi)源項(xiàng)目讓我們看到編程語(yǔ)言的絢麗多彩。
教程至此,你應(yīng)該也能快速運(yùn)行個(gè)人網(wǎng)盤了。編程是不是也特別有意思呢?先下載安裝包給自己部署一套網(wǎng)盤系統(tǒng)吧。對(duì)源碼感興趣的朋友可以開(kāi)始學(xué)習(xí)項(xiàng)目源碼了~
以上就是Java如何搭建一個(gè)個(gè)人網(wǎng)盤的詳細(xì)內(nèi)容,更多關(guān)于Java搭建網(wǎng)盤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 手把手搭建Java共享網(wǎng)盤的方法步驟
- java獲取百度網(wǎng)盤真實(shí)下載鏈接的方法
- Python 一鍵獲取百度網(wǎng)盤提取碼的方法
- Linux下使用nextcloud搭建個(gè)人網(wǎng)盤代碼實(shí)例
- SpringBoot開(kāi)發(fā)案例之打造私有云網(wǎng)盤的實(shí)現(xiàn)
- VPS搭建離線下載服務(wù)器(后網(wǎng)盤時(shí)代)
- 利用docker部署nextcloud 網(wǎng)盤的方法步驟
- 使用electron實(shí)現(xiàn)百度網(wǎng)盤懸浮窗口功能的示例代碼
- JS實(shí)現(xiàn)百度網(wǎng)盤任意文件強(qiáng)制下載功能
相關(guān)文章
SpringMVC中事務(wù)是否可以加在Controller層的問(wèn)題
這篇文章主要介紹了SpringMVC中事務(wù)是否可以加在Controller層的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02SpringCloud如何使用Eureka實(shí)現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)
這篇文章主要介紹了SpringCloud使用Eureka實(shí)現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06解讀controller層,service層,mapper層,entity層的作用與聯(lián)系
這篇文章主要介紹了關(guān)于controller層,service層,mapper層,entity層的作用與聯(lián)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11SpringBoot加密配置文件的SQL賬號(hào)密碼方式
這篇文章主要介紹了SpringBoot加密配置文件的SQL賬號(hào)密碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Javaweb動(dòng)態(tài)開(kāi)發(fā)最重要的Servlet詳解
動(dòng)態(tài)web的核心是Servlet,由tomcat解析并執(zhí)行,本質(zhì)是Java中的一個(gè)類(面向?qū)ο螅┻@個(gè)類的功能十分強(qiáng)大幾乎可以完成全部功能,在Java規(guī)范中只有Servlet實(shí)現(xiàn)類實(shí)例化的對(duì)象才能被瀏覽器訪問(wèn),所以掌握Servlet具有重要意義2022-08-08解決Springboot配置excludePathPatterns不生效的問(wèn)題
這篇文章主要介紹了解決Springboot配置excludePathPatterns不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10