GithubHelp home page GithubHelp logo

xuxiake2017 / x-netdisk Goto Github PK

View Code? Open in Web Editor NEW
20.0 4.0 4.0 6.3 MB

一个分布式在线网盘系统(后端),包含一个Web IM

License: MIT License

Java 99.01% Batchfile 0.10% Dockerfile 0.80% Shell 0.09%
netdisk web-im distributed-systems zookeeper

x-netdisk's Introduction

x-netdisk

language java GitHub followers GitHub stars GitHub watchers

项目简介

一个分布式在线网盘系统,包含一个Web IM

使用需知

  • 整体框架使用springboot,父子模块,前后端分离
  • 使用zookeeper做服务注册与发现中心
  • 使用shiro做登录认证
  • 前端需配合netdisk-appnetdisk-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,根据自己的配置来

使用docker部署

  1. 安装依赖以及打包

    $ mvn install
    $ mvn package
  2. 构建自定义docker镜像

    # LibreOffice的镜像源可能会失效,请自行替换
    $ cd libreoffice_ffmpeg
    $ ./build.sh
  3. 启动

    $ docker-compose up
    # 或者是
    $ docker compose up

框架介绍

  • chat简易流程图 chat简易流程图
  • 文件上传时序图 文件上传时序图

模块介绍

x-netdisk-web
  • 处理web请求,可以部署多个,内部采用redis session集群共享方案
x-netdisk-route
  • 路由集中处理
  • 订阅子模块
  • 保存、获取用户聊天的路由
  • 分发请求
  • 可以部署多个(无状态)
x-netdisk-chat-server(非必须)
  • web im 的服务端,可以部署多个
x-netdisk-quartz
  • 使用quartz处理回收站,定时清理用户回收站
  • 可以部署多个,quartz自带集群方案
x-netdisk-common
  • 公用mapper、entity、utils,被其他模块所依赖
x-netdisk-admin
  • admin模块,admin后台管理的代码

鸣谢

更新日志

2020-03-25
  • 增加将socket Ip注册到zookeeper,生产环境socket Ip需要公网
  • 上传README.md文件以及数据库脚本
2020-03-26
  • 解决项目打包问题
2020-03-31
  • 加入quartz定时任务框架,处理回收站
2020-04-11
  • 史诗级更新,项目重构,file表拆分(总算把当年犯傻建的表改了...)
2020-05-20
  • 增加视频缩略图
  • 文件列表增加缩略图字段
2020-06-25
  • 增加文档转pdf
2021-03-22
  • 判断上传的txt文件编码,如果不是UTF-8无BOM,转码为UTF-8无BOM(解决txt文件转pdf乱码)
2021-05-02
  • 增加对小程序一键登录注册的支持以及自动登录
2021-05-02
  • 修复上传的图片大于100KB进行缩略;对上传的音频封面图大于100KB进行缩略
2021-07-04
  • 增加小程序登出
  • 文件列表增加排序方式查询条件
2022-07-29
  • 重大更新,增加docker部署
2022-09-15
  • 增加系统日志(登录),增加短信发送日志
2023-01-05
  • 增加admin模块
持续更新中,如果我的项目能给您带来帮助,请star一下😁

x-netdisk's People

Contributors

dependabot[bot] avatar xuxiake2017 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

x-netdisk's Issues

同学,您这个项目引入了237个开源组件,存在78个漏洞,辛苦升级一下

检测到 xuxiake2017/x-netdisk 一共引入了237个开源组件,存在78个漏洞

漏洞标题:netty 安全漏洞
缺陷组件:io.netty:[email protected]
漏洞编号:CVE-2021-37137
漏洞描述:Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。
netty存在安全漏洞,该漏洞源于Snappy frame decoder函数不限制块长度,这可能会导致过度内存使用。
影响范围:(∞, 4.1.68.Final)
最小修复版本:4.1.68.Final
缺陷组件引入路径:group.xuxiake:[email protected]>org.springframework.boot:[email protected]>io.lettuce:[email protected]>io.netty:[email protected]>io.netty:[email protected]

另外还有78个漏洞,详细报告:https://mofeisec.com/jr?p=i67f2e

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.