大家好,我是 Java陈序员
。
今天,给大家介绍一款基于 SpringBoot + Vue 开发的网盘系统!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目介绍
qiwen-file
—— 奇文网盘,一款基于 SpringBoot + Vue 框架开发的文件系统,旨在为用户和企业提供一个简单、方便的文件存储方案,能够以完善的目录结构体系,对文件进行管理。
功能特色:
- 文件上传:集成 vue-simple-uploader,实现文件分片上传、断点续传、拖拽上传等功能
- 文件管理:支持文件/文件夹的移动、重命名、下载、删除、还原、压缩包解压缩等基本操作
- 良好的交互:提供列表、网格、时间线等多种展示模式,并支持全局搜索文件名,快速定位文件并打开文件所处位置
- 文件预览:支持图片、视频、音频、PDF、JSON、TXT 等文件的在线预览,还支持多种编程语言代码文件的在线预览和编辑
- Offce 文档支持:提供 Word、Excel、PowerPoint 文档的在线创建、协同编辑功能(需安装 OnlyOffice Docs 服务)
- 多种存储方式:支持本地磁盘、阿里云 OSS 对象存储、FastDFS 存储、MinIO、七牛云 KODO 对象存储等
- 文件分享:支持文件分享,可设置过期时间,自动生成提取码,并可查看个人分享过的文件列表
- 回收站:支持文件回收站功能,可轻松找回误删文件
技术栈:
- 前端:Node.js、Vue、Element UI
- 后端:SpringBoot、MyBatis、JPA、JWT
- 数据库: MySQL、Redis、ElasticSearch
系统截图
- 主页
- 文件操作
- 文件预览
- 在线编辑
- 压缩包解压缩
- 回收站
- 文件分享
快速上手
环境准备
1、源码的编译和运行需要依赖以下开发环境:
- JDK8.0+
- MySQL8.0+
- Maven
- Node.js12.13.1
2、创建数据库
CREATE DATABASE `file` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3、项目的建表使用 JPA 模型映射技术,当数据库配置完成后,直接启动项目,系统会自动完成整个建表过程
后端服务
1、克隆代码
git clone https://gitee.com/qiwen-cloud/qiwen-file.git
2、将整个项目以 Maven 项目的形式导入到 IDEA 中
3、修改配置文件 /resources/config/application.properties
中的 MySQL、Redis 服务连接地址、用户名、密码等配置
#jdbc连接-mysql数据库
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/file?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=ma123456
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=ma123456
4、运行主启动类 com.qiwenshare.file.FileApplication
运行项目
5、项目启动后,需要再执行下 /resource/import.sql
脚本初始化数据,否则会报错
前端服务
## 1、克隆项目
git clone https://gitee.com/qiwen-cloud/qiwen-file-web.git
## 2、进入项目目录
cd qiwen-file-web
## 3、安装依赖
npm install
## 4、启动服务
npm run serve
## 5、浏览器访问
http://localhost:8081/
## 6、系统管理员用户名/密码
admin/admin
存储方式配置
qiwen-file
默认存储为本地存储,默认存储在 /target/classes/static/upload
目录下,可通过修改配置文件 /resources/config/application.properties
进行修改:
#存储类型
ufop.storage-type=0
#文件存储路径
ufop.local-storage-path=
ufop.bucket-name=upload
ufop.storage-type
指定存储类型,对应存储方式的值为:
存储方式 | storage-type |
---|---|
本地 | 0 |
阿里云 OSS 对象存储 | 1 |
FastDFS 存储 | 2 |
MinIO 存储 | 3 |
七牛云KODO 对象存储 | 3 |
例如配置阿里云 OSS 对象存储:
#存储类型
ufop.storage-type=1
#阿里云oss基本配置
ufop.aliyun.oss.endpoint=
ufop.aliyun.oss.access-key-id=
ufop.aliyun.oss.access-key-secret=
ufop.aliyun.oss.bucket-name=
更多存储方式的配置可参考文档:
https://pan.qiwenshare.com/docs/config/#%E5%AD%98%E5%82%A8%E6%96%B9%E5%BC%8F%E9%85%8D%E7%BD%AE
其他配置
1、文件搜索依赖于 ElasticSearch,需先安装 ElasticSearch 服务
2、Office 文档的预览编辑依托于 OnlyOffice Docs 服务,需要进行环境安装,否则会报错
3、对应的配置可直接参考文档:
https://pan.qiwenshare.com/docs/config/
可以说,qiwen-file
完全实现了一个网盘应有的功能,而且遵循 MIT 开源协议,完全开源。如果对其中的实现原理感兴趣,可以进行学习借鉴,也可以在此基础上进行二次开发和功能扩展~
项目地址:https://gitee.com/qiwen-cloud/qiwen-file
最后
推荐的开源项目已经收录到 GitHub
项目,欢迎 Star
:
https://github.com/chenyl8848/great-open-source-project
或者访问网站,进行在线浏览:
https://chencoding.top:8090/#/
我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目。
但是任何人在群里打任何广告,都会被 T 掉。
如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群:
关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群。
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。