和付費網盤說再見,跟着本文本身起個網盤(Java 開源項目)

本文適合有 Java 基礎知識的人羣,跟着本文可學習和運行 Java 網盤項目。前端

本文做者:HelloGitHub-秦人java

HelloGitHub 推出的《講解開源項目》系列。git

今天給你們帶來一款開源 Java 版網盤項目—— kiftd-source,本文將用 3 分鐘帶你們搭建一個我的網盤,技術便利生活,你值得擁有~github

項目地址:https://github.com/KOHGYLW/kiftd-sourceweb

1、項目介紹

kiftd 是一款開源、使用簡單、功能完整的 Java 網盤/雲盤系統。支持在線視頻播放、文檔在線預覽、音樂播放、圖片查看等功能的文件雲存儲平臺。ajax

技術棧數據庫

  • 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、網盤搭建

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、開發環境運行

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、功能說明

4.1 上傳

  1. 點擊 操做,能夠上傳文件和上傳文件夾,以下圖:

  2. 將本地須要上傳的文件,拖拽網盤頁面也能夠上傳此文件。

4.2 視頻/音頻播放

  1. 上傳視頻到網盤,網盤也支持在線視頻播放,效果以下圖:

  2. 上傳音頻,例如我最喜歡 周杰倫 的歌曲,能夠在線播放了。

4.3 快捷鍵使用

網盤還對一些經常使用功能添加了快捷鍵。功能和快捷鍵參照以下:

功能 快捷鍵
上傳文件夾 Shift +U
上傳文件 Shift +F
新建文件 Shift +N
複製 Shift +C
剪切 Shift +X
刪除 Shift +D

4.4 配置文件修改

配置文件在項目 conf 目錄,包括兩個配置文件:

  • account.properties:配置帳號信息,權限信息
  • server.properties:服務器的配置文件,可配置服務器端口,緩衝文件大小等

4.5 在線預覽

網盤支持文檔 txtpdfdocxppt 在線預覽功能,支持圖片的在線預覽。圖片預覽效果以下:

pdf 文件預覽效果以下:

4.6 分享下載連接

網盤也考慮文件的分享,它能夠生成下載連接,瀏覽器訪問下載連接就能夠直接下載文件。選擇須要下載的文件,點擊 下載 按鈕,選擇 下載連接+,既能夠生成文件下載連接。以下圖:

5、最後

教程至此已經結束,你本身的網盤跑起來了嗎?網盤是否是還不錯?並且搭建也特別簡單。一些重要的東西就能夠存放到本身的網盤啦!說到底,編程語言只是工具,咱們只要很好的使用工具,再加上本身天馬行空的思想,我想會創造出更多難以想象的項目。

Java 語言爲何經久不衰,由於它能作的事情太多了,並且生態也特別豐富。若是你也有興趣那就加入 Javaer 開發者的你們庭吧!開源分享讓咱們彼此認識,有了開源項目讓咱們看到編程語言的絢麗多彩。

教程至此,你應該也能快速運行我的網盤了。編程是否是也特別有意思呢?先下載安裝包給本身部署一套網盤系統吧。對源碼感興趣的朋友能夠開始學習項目源碼了~


關注公衆號加入交流羣
相關文章
相關標籤/搜索