一、計畫介紹
計畫是一款基於 Spring Boot 2 + VUE CLI@3(Vue2) 框架開發的分布式檔管理系統,旨在為使用者和企業提供一個簡單、方便的檔儲存方案,能夠以完善的目錄結構體系,對檔進行管理。 計畫使用前後台分離的模式進行開發和部署,對於開發者,前後台職責劃分的比較清晰,對於使用者,可以將前後台部署到不同的機器上。
二、系統架構
後端技術棧
平台框架:SpringBoot
Java持久層API :JPA
JSON網路令牌:JWT
資料庫:MySql
計畫管理框架: Maven 3.6
持久層框架:Mybatis
前端技術棧
Element UI
Vue CLI@3
Node.js
Webpack
開發環境
JDK:JDK 1.8
資料庫:Mysql8
Node.js:v12.13.1
Maven:最新版本
分布式架構
分布式的架構設計,可以為你的網盤開啟無限的擴充套件空間,網路拓撲圖如下:
三、功能概覽
基礎操作(√ 支持 ⚪ 不支持)
操作 | 檔 | 資料夾 | 單個 | 批次 | 備註 |
---|---|---|---|---|---|
建立 | √ | √ | √ | ⚪ | 建立 Word、Excel、PowerPoint 線上檔 |
刪除 | √ | √ | √ | √ | |
上傳 | √ | √ | √ | √ | 拖拽 上傳、 貼上截圖 上傳 |
重新命名 | √ | √ | √ | ⚪ | |
移動 | √ | √ | √ | √ | |
復制 | √ | ⚪ | √ | ⚪ | |
解壓縮 | √ | ⚪ | √ | ⚪ | 支持解壓縮 ZIP、RAR、7Z、TAR 格式的檔 |
預覽 | √ | ⚪ | √ | ⚪ |
支持圖片、視訊、音訊線上預覽
支持 PDF、JSON、TXT、HTML 等常用文字檔案 支持 Office 檔線上預覽 |
分享 | √ | √ | √ | √ | 支持有效期、提取碼 |
搜尋 | √ | √ | ⚪ | ⚪ | 支持 ElasticSearch 檔名稱模糊搜尋 |
特色功能
功能 | 描述 |
---|---|
office 線上編輯 | Word、Excel、PowerPoint 文件的線上建立、預覽、 線上編輯 功能 (opens new window) |
markdown 線上編輯 |
支持
markdown
檔線上預覽、編輯、保存功能
整合 mavon-editor (opens new window) ,已內建到前端工程中 |
程式碼線上編輯 |
支持
C、C++、C#、Java、JavaScript、HTML、CSS、Less、Sass、Stylus
等常用程式碼類檔的線上預覽、編輯、保存 整合 vue-codemirror (opens new window) ,已內建到前端工程中, 可參考 codemirror (opens new window) 官網說明添加更多語言 |
檔分類檢視 | 圖片、視訊、音樂、文件、其他,分類檢視更快捷 |
多種檢視模式 |
支持網格模式、列表模式、時間線模式
網格模式下圖示支持手動控制顯示大小 |
資源回收桶 | 刪除檔自動移入資源回收桶,支持在資源回收桶中徹底刪除、還原檔 |
多種儲存方式 |
基於奇文社群自研框架 UFOP
(opens new window)
,實作檔多樣化儲存。
支持 本地 磁盤、 阿裏雲 OSS 物件儲存、 FastDFS 儲存、 MinIO 儲存、 七牛雲 KODO 物件儲存,點選檢視配置方式儲存方式配置 |
支持分片上傳 |
基於奇文社群自研框架 UFOP
(opens new window)
, 實作檔分片上傳。
整合優秀開源計畫 vue-simple-uploader (opens new window) |
支持極速秒傳 | 計算檔 MD5,實作極速秒傳效果,提高上傳效率 |
支持斷點續傳 | 同一個檔,當上傳過程中網路中斷,可以從斷點處繼續上傳 |
即時進度顯示 | 頁面即時顯示上傳檔進度、速度、結果等資訊 |
儲存容量顯示 | 可即時顯示檔儲存占用情況及總儲存容量 |
四、下載編譯
後台
git clone https://gitee.com/qiwen-cloud/qiwen-file.git
本計畫是本質上是一個maven工程,因此,在命令列執行普通的maven編譯命令即可編譯。編譯命令如下:
mvn install
因為依賴比較多,我一般使用阿裏的maven映像庫進行下載, 如果你也想透過該方式進行編譯,可直接雙擊根路徑下的
install.bat
指令碼。
前端
git clone https://gitee.com/qiwen-cloud/qiwen-file-web.git
# 進入計畫目錄
cd qiwen-file-web
# 安裝依賴
npm install
# 編譯
npm run build
五、開發環境執行
後台
將
qiwen-file
計畫載入到 Intellj IDEA 中, 開啟 FileApplication.java 類,執行其中的main 方法:
前端
修改根目錄下
vue.config.js
中
devServer.proxy.target
的埠修改為後台計畫的埠(例如前述的 8081 埠),然後啟動:
# 本地開發 啟動計畫
npm run serve
警告
每次修改完
vue.config.js
中的配置項,都需要重新啟動計畫才會生效
啟動完成後會自動開啟瀏覽器存取 http://localhost:8081 (opens new window) , 你看到下面的頁面就代表操作成功了。
六、產品頁面
1.1 網盤主頁
1.2 布局調整功能
左側選單欄可折疊,可控制當前表格中列的顯示和隱藏
1.3 檔圖示大小調整
在網格模式和時間線模式下,支持手動調整圖示大小:
2. 路徑導航
點選目錄跳轉到該資料夾內部,在麵包屑導航欄後面空白處點選,可以 輸入路徑 ,快速到達指定路徑(此功能僅支持在 我的檔 - 全部 分類下使用)
3. 三種檢視模式
檔檢視支持三種展示模式:列表、網格和時間線模式
3.1 列表模式
3.2 網格模式
3.3 時間線模式
時間線模式目前僅在左側分類欄選擇圖片時才支持,我們會盡快支持其他型別的檔
4. 檔操作
檔操作結合了電腦客戶端的操作方式,支持任何檔右鍵喚起操作列表,或勾選檔並點選頂部相關批次操作按鈕。
4.1 新建資料夾
4.2 檔移動
支持檔單個和批次移動,選擇目錄後,點選確定即可移動檔到目標路徑,同時在彈框中提供新建資料夾功能。
4.3 檔線上解壓縮
支持 ZIP 和 RAR 格式的檔線上解壓縮,支持三種解壓方式:
解壓到當前資料夾
解壓到以當前壓縮檔命名的資料夾內
解壓到指定資料夾
4.4 檔搜尋
支持檔名搜尋檔,搜尋功能後台配置請檢視頂部導航欄
配置-後台計畫配置-檔搜尋配置
4.5 批次操作功能
在列表和網格模式下,提供了批次操作功能,可以對檔進行批次刪除、移動和下載。
5. 三種檔上傳方式
5.1 檔 & 資料夾分片上傳
支持 檔 和 資料夾 上傳。檔采用 分片上傳 ,整合了 simiple-uplader 的檔 秒傳 、 斷點續傳 功能,此外掛程式的具體配置項可以檢視該計畫的官方文件。
5.2 拖拽上傳
支持全螢幕區域拖拽上傳檔。
5.3 截圖貼上上傳
直接使用任何剪取工具截圖後,在拖拽區域使用 Ctrl + V 貼上圖片,點選上傳圖片即可上傳。
6. 檔資源回收桶
提供檔資源回收桶功能,支持徹底刪除和還原檔。
7. 檔分享
7.1 單個或批次檔分享
支持單個和批次分享檔給他人:
可以選擇過期時間和是否需要提取碼:
提供快捷復制連結及提取碼給他人:
貼上分享連結及提取碼效果:
分享連結:http://localhost:8080/share/363196ac9fd94371b9f47cb24f042d9f
提取碼:967617
復制連結到瀏覽器中並輸入提取碼即可檢視檔他人檢視分享內容,並支持保存到網盤功能:
7.2 檢視已分享過的檔列表
支持在列表中快捷復制當次的分享連結及提取碼,並標註分享時間和過期狀態:
8. 檔線上預覽 & 編輯
8.1 office 線上預覽 & 編輯
本地啟動時,office 檔線上預覽需要在本地搭建 only office 服務;線上部署時,office 檔線上預覽需要在伺服器上搭建 only office 服務;
例如:word 檔線上預覽:
例如:word 檔線上編輯:
8.2 markdown 線上預覽 & 編輯
支持 markdown 檔線上預覽、編輯、保存功能,整合 mavon-editor ,已內建到前端工程中
8.3 程式碼類檔線上預覽 & 編輯
支持 C、C++、C#、Java、JavaScript、HTML、CSS、Less、Sass、Stylus …… 等常用程式碼類檔的線上預覽、編輯、保存
整合 vue-codemirror,已內建到前端工程中,可參考 codemirror 官網說明添加更多語言
8.4 視訊線上預覽
檔型別為視訊時,點選即可開啟預覽視窗,展示播放列表,支持快進、後退、暫停、倍速播放、全螢幕播放、下載視訊和折疊播放列表。
視訊播放器使用了 vue-video-player ,具體配置項請檢視該計畫的官方文件,外層播放列表和操作欄為自行封裝的。
8.5 音訊線上播放
MP3 格式的檔支持線上播放。
9. 移動端支持
除過線上編輯之外,其他的功能均支持在移動端操作 指南-功能展示-移動端支持
原始碼下載地址:
前端
https://gitee.com/qiwen-cloud/qiwen-file-web.git
後台
https://gitee.com/qiwen-cloud/qiwen-file.git
看到最後,如果這個計畫對你有用,一定要給我點個「 在看和贊 」。