一个分布式在线网盘系统,包含一个Web IM
- 整体框架使用springboot,父子模块,前后端分离
- 使用zookeeper做服务注册与发现中心
- 使用shiro做登录认证
- 前端需配合netdisk-app、netdisk-web(待完善)、netdisk-miniapp使用
- 需要nginx做代理
- 需要redis
- 储蓄文件使用了分布式文件服务器FastDFS
- 数据库mysql
- 网盘文件树实现使用了mysql的储存过程
- 确保电脑上安装了mvn,而且加进了系统path中,运行
x-netdisk-web\src\main\resources\lib\install.cmd
,安装jave-1.0.2.jar
这个lib - docker部署在windows上遇到
world-writable config file '/etc/mysql/my.cnf' is ignored docker
的问题,把my.cnf
设置成只读 - 不建议在windows上使用docker,会卡死(自测是这样)
- 记得修改
x-netdisk-web\src\main\resources\application.yml
中的fdfs-nginx-server
,根据自己的配置来
-
安装依赖以及打包
$ mvn install $ mvn package
-
构建自定义docker镜像
# LibreOffice的镜像源可能会失效,请自行替换 $ cd libreoffice_ffmpeg $ ./build.sh
-
启动
$ docker-compose up # 或者是 $ docker compose up
- 处理web请求,可以部署多个,内部采用redis session集群共享方案
- 路由集中处理
- 订阅子模块
- 保存、获取用户聊天的路由
- 分发请求
- 可以部署多个(无状态)
- web im 的服务端,可以部署多个
- 使用quartz处理回收站,定时清理用户回收站
- 可以部署多个,quartz自带集群方案
- 公用mapper、entity、utils,被其他模块所依赖
- admin模块,admin后台管理的代码
- 整体框架参考 crossoverJie/cim
- shiro session 共享实现 alexxiyang/shiro-redis
- FastDFS springboot 解决方案 tobato/FastDFS_Client
- emoji 的 java 转换储存解决方案 vdurmont/emoji-java
- 增加将socket Ip注册到zookeeper,生产环境socket Ip需要公网
- 上传README.md文件以及数据库脚本
- 解决项目打包问题
- 加入quartz定时任务框架,处理回收站
- 史诗级更新,项目重构,file表拆分(总算把当年犯傻建的表改了...)
- 增加视频缩略图
- 文件列表增加缩略图字段
- 增加文档转pdf
- 判断上传的txt文件编码,如果不是UTF-8无BOM,转码为UTF-8无BOM(解决txt文件转pdf乱码)
- 增加对小程序一键登录注册的支持以及自动登录
- 修复上传的图片大于100KB进行缩略;对上传的音频封面图大于100KB进行缩略
- 增加小程序登出
- 文件列表增加排序方式查询条件
- 重大更新,增加docker部署
- 增加系统日志(登录),增加短信发送日志
- 增加admin模块