头图

大家好,我是 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陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!


Java陈序员
89 声望13 粉丝