本文適合有 Java 基礎知識的人羣,跟着本文可學習和運行
Java
網盤項目。前端
本文做者:HelloGitHub-秦人java
HelloGitHub 推出的《講解開源項目》系列。git
今天給你們帶來一款開源 Java 版網盤項目—— kiftd-source,本文將用 3 分鐘帶你們搭建一個我的網盤,技術便利生活,你值得擁有~github
項目地址:https://github.com/KOHGYLW/kiftd-sourceweb
kiftd 是一款開源、使用簡單、功能完整的 Java 網盤/雲盤系統。支持在線視頻播放、文檔在線預覽、音樂播放、圖片查看等功能的文件雲存儲平臺。ajax
技術棧數據庫
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
文件,會彈出安裝的界面,以下圖:
這個界面的這幾個按鈕說明一下:
8080
。
點擊 開啓(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 複製代碼
這樣登陸以後就可使用網盤的全部功能了。
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
上同樣,包括文件導入,導出,刪除功能,多了幾個命令是查看文件,切換目錄等功能。
兩種方式下載項目,使用 GitBash
下載項目:
git clone https://github.com/KOHGYLW/kiftd-source.git
複製代碼
另一種方式直接下載 zip
壓縮包,以下圖:
打開 kohgylw.kiftd.mc.MC
類,進行測試運行。注意:本文使用 Eclipse
工具打開。
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"; } 複製代碼
點擊 操做
,能夠上傳文件和上傳文件夾,以下圖:
將本地須要上傳的文件,拖拽網盤頁面也能夠上傳此文件。
上傳視頻到網盤,網盤也支持在線視頻播放,效果以下圖:
上傳音頻,例如我最喜歡 周杰倫
的歌曲,能夠在線播放了。
網盤還對一些經常使用功能添加了快捷鍵。功能和快捷鍵參照以下:
功能 | 快捷鍵 |
---|---|
上傳文件夾 | Shift +U |
上傳文件 | Shift +F |
新建文件 | Shift +N |
複製 | Shift +C |
剪切 | Shift +X |
刪除 | Shift +D |
配置文件在項目 conf
目錄,包括兩個配置文件:
account.properties
:配置帳號信息,權限信息
server.properties
:服務器的配置文件,可配置服務器端口,緩衝文件大小等
網盤支持文檔 txt
、pdf
、docx
、ppt
在線預覽功能,支持圖片的在線預覽。圖片預覽效果以下:
pdf
文件預覽效果以下:
網盤也考慮文件的分享,它能夠生成下載連接,瀏覽器訪問下載連接就能夠直接下載文件。選擇須要下載的文件,點擊 下載
按鈕,選擇 下載連接+
,既能夠生成文件下載連接。以下圖:
教程至此已經結束,你本身的網盤跑起來了嗎?網盤是否是還不錯?並且搭建也特別簡單。一些重要的東西就能夠存放到本身的網盤啦!說到底,編程語言只是工具,咱們只要很好的使用工具,再加上本身天馬行空的思想,我想會創造出更多難以想象的項目。
Java
語言爲何經久不衰,由於它能作的事情太多了,並且生態也特別豐富。若是你也有興趣那就加入 Javaer
開發者的你們庭吧!開源分享讓咱們彼此認識,有了開源項目讓咱們看到編程語言的絢麗多彩。
教程至此,你應該也能快速運行我的網盤了。編程是否是也特別有意思呢?先下載安裝包給本身部署一套網盤系統吧。對源碼感興趣的朋友能夠開始學習項目源碼了~