本文適合有 Java 基礎知識的人群,跟著本文可學習和執行
Java
網盤專案。
本文作者:HelloGitHub-秦人
HelloGitHub 推出的《講解開源專案》系列。
今天給大家帶來一款開源 Java 版網盤專案—— kiftd-source,本文將用 3 分鐘帶大家搭建一個個人網盤,技術便利生活,你值得擁有~
一、專案介紹
kiftd 是一款開源、使用簡單、功能完整的 Java 網盤/雲盤系統。支援線上視訊播放、文件線上預覽、音樂播放、圖片檢視等功能的檔案雲端儲存平臺。
技術棧
- JDK 版本:1.8.0_131
- 專案管理框架:Maven(m2e 1.8.0 for Eclipse)
- Archetype:mavem-archetype-quickstart 1.1
- Spring Boot:SpringBoot 基於 Spring 開發,旨在提高微服務的開發效率。
- MyBatis:一款優秀的持久層框架,它支援自定義 SQL、儲存過程以及高階對映。
- H2 DB:一款開源的嵌入式資料庫引擎,採用 Java 語言編寫,不受平臺的限制。
二、網盤搭建
2.1 Windows 環境執行
2.1.1 下載安裝包
直接從官網下載最新的安裝包,安裝地址:https://kohgylw.gitee.io/
專案比較溫馨,支援三種下載方式:Github、阿里雲、Gitee 下載。如下圖:
2.1.2 檢查配置
這裡主要檢查一下本地 JDK
是否已安裝,在命令列視窗執行 java -version
檢視 Java
版本。如下所示表示已安裝,就可以進行下一步操作。
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 執行 jar
雙擊 kiftd-1.0.29-RELEASE.jar
,或者在命令列執行 java -jar kiftd-1.0.29-RELEASE.jar
命令都執行可以jar
檔案,會彈出安裝的介面,如下圖:
這個介面的這幾個按鈕說明一下:
- 開啟(Start):執行網盤服務,初次啟動的埠預設是
8080
。 - 檔案(Files):這個按鈕選單中主要有網盤檔案匯入,匯出,刪除,重新整理功能。
- 設定(Setting):設定功能主要可以設定網盤的服務埠,網盤的物理儲存路徑等資訊。
- 退出(Exit):關閉網盤系統。
點選 開啟(Start)
按鈕即可執行網盤,這裡我設定的埠是 8090
,在瀏覽器訪問: localhost:8090
,執行效果如下圖:
專案是執行了,發現一個問題無法上傳檔案?因為我們忘了登入這個操作。點選系統 登入按鈕
,填入賬號和密碼即可登入。那麼登入密碼在哪裡呢?這裡我直接告訴大家,使用者資訊在 conf/account.properties
,檔案內容如下:
#<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
這樣登入之後就可以使用網盤的所有功能了。
2.2 Linux 環境執行
2.2.1 安裝 Screen 工具
Screen 工具能夠虛擬出一個終端並執行相應的操作。因為本篇所講的網盤需要一個終端。執行如下命令安裝 Screen
:
yum install screen
2.2.2 Screen
常用命令
screen -S myScreen #建立虛擬終端
java -jar kiftd-1.0.29-RELEASE.jar -console #在虛擬終端中以命令模式啟動 kiftd
screen -r myScreen #返回之前的虛擬終端並繼續操作 kiftd。
2.2.3 命令列操作
在 Linux
環境上使用 console
模式啟動的效果是這樣的:
命令列輸入 -start
即可執行專案。例如輸入 -files
控制檯顯示是這樣的:
其實和 Windows
上一樣,包括檔案匯入,匯出,刪除功能,多了幾個命令是檢視檔案,切換目錄等功能。
三、開發環境執行
3.1 下載專案
兩種方式下載專案,使用 GitBash
下載專案:
git clone https://github.com/KOHGYLW/kiftd-source.git
另外一種方式直接下載 zip
壓縮包,如下圖:
3.2 執行
開啟 kohgylw.kiftd.mc.MC
類,進行測試執行。注意:本文使用 Eclipse
工具開啟。
3.3 閱讀程式碼
3.3.1 前臺請求
就以建立目錄這個功能為例。我們先看前端功能。點選“操作”->“新建資料夾”,填寫資料夾名稱,點選儲存如下圖:
我們知道前臺 新建資料夾
功能呼叫的後臺介面是 newFolder.ajax
3.3.2 後端介面
通過前臺請求可知呼叫的後臺介面為 homeController/newFolder.ajax
。開啟程式碼實現,我們會看到下面這個方法。
public String newFolder(final HttpServletRequest request) {
...
//引數校驗的部分程式碼已省略
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 {
// 資料庫插入新建資料夾的資料
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";
}
四、功能說明
4.1 上傳
-
點選
操作
,可以上傳檔案和上傳資料夾,如下圖:
-
將本地需要上傳的檔案,拖拽網盤頁面也可以上傳此檔案。
4.2 視訊/音訊播放
-
上傳視訊到網盤,網盤也支援線上視訊播放,效果如下圖:
-
上傳音訊,例如我最喜歡
周杰倫
的歌曲,可以線上播放了。
4.3 快捷鍵使用
網盤還對一些常用功能新增了快捷鍵。功能和快捷鍵參照如下:
功能 | 快捷鍵 |
---|---|
上傳資料夾 | Shift +U |
上傳檔案 | Shift +F |
新建檔案 | Shift +N |
複製 | Shift +C |
剪下 | Shift +X |
刪除 | Shift +D |
4.4 配置檔案修改
配置檔案在專案 conf
目錄,包括兩個配置檔案:
account.properties
:配置賬號資訊,許可權資訊server.properties
:伺服器的配置檔案,可配置伺服器埠,緩衝檔案大小等
4.5 線上預覽
網盤支援文件 txt
、pdf
、docx
、ppt
線上預覽功能,支援圖片的線上預覽。圖片預覽效果如下:
pdf
檔案預覽效果如下:
4.6 分享下載連結
網盤也考慮檔案的分享,它可以生成下載連結,瀏覽器訪問下載連結就可以直接下載檔案。選擇需要下載的檔案,點選 下載
按鈕,選擇 下載連結+
,既可以生成檔案下載連結。如下圖:
五、最後
教程至此已經結束,你自己的網盤跑起來了嗎?網盤是不是還不錯?而且搭建也特別簡單。一些重要的東西就可以存放到自己的網盤啦!說到底,程式語言只是工具,我們只要很好的使用工具,再加上自己天馬行空的思想,我想會創造出更多不可思議的專案。
Java
語言為什麼經久不衰,因為它能做的事情太多了,而且生態也特別豐富。如果你也有興趣那就加入 Javaer
開發者的大家庭吧!開源分享讓我們彼此認識,有了開源專案讓我們看到程式語言的絢麗多彩。
教程至此,你應該也能快速執行個人網盤了。程式設計是不是也特別有意思呢?先下載安裝包給自己部署一套網盤系統吧。對原始碼感興趣的朋友可以開始學習專案原始碼了~
關注公眾號加入交流群