# xcloud **Repository Path**: zf233cn/xcloud ## Basic Information - **Project Name**: xcloud - **Description**: XCloud是一款基于SpringBoot构建的在线存储应用 网络存储、网盘、云盘,适合初学者,喜欢的小伙伴可以点击上边的⭐支持一下哦! - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2021-11-18 - **Last Updated**: 2025-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, MyBatis, Redis, ElasticSearch, RabbitMQ ## README # XCloud

XCloud
XCloud

简约快速的在线存储应用

*** XCloud体验点这里 ### 体验注意 #### 注册登陆方式(新用户三选一即可) * 点击企鹅进行QQ授权即可登陆,新用户自动注册 * 点击手机登陆,需正确填写手机,以便接受验证码,验证即登录,未注册将自动创建XCloud帐号 * 点击邮箱登陆,需正确填写邮箱,以便接受验证码,验证即登录,未注册将自动创建XCloud帐号 ### 主要功能 * 文件管理:文件的上传、下载、复制、移动、转存、重命名、删除、查看详情等, 文件夹的新建、删除、重命名等。 * 文件分享:链接分享、二维码分享, 分享文件转存, 到期超时与指定超时。 * 文件搜索:定时索引重建、搜索结果高亮显示,用户网盘用量分布统计、搜索、分类查看等。 * 废纸管理:恢复、物理删除、清倒 * 数据持久:文件分片缓存、缓存分片持久、上传协调、任务委派与执行等。 * 用户操作:登陆、注册、信息绑定等用户信息相关操作。 * 通知提示:发送用户信息相关操作的通知信息、邮件, 注册激活、验证码登陆、信息绑定、用户状态变更提醒等。 * 控制台: * 用户管理:用户非隐私信息查看、用户用量监控、用户锁定与解锁、用户移除等。 * 系统监控:网盘流量出入,服务器CPU、内存等用量监控。(使用WebSocket推送实时监控数据) * 参数配置:页面通知开关与内容,其他参数配置。 * 安卓APP端:业余开发,满足基本的网盘使用需求。(已下线) ### 其他 * 使用WebSocket进行实时监控数据推送 * 速度测试(保定地区电信300兆宽带) * 上传:135MB压缩包,用时***45秒*** * 下载:135MB压缩包,用时***5秒*** * 仅限测试,带宽的不同使得上传、下载速度的不同 * Nginx部署SSL证书、动静分离、反向代理、负载均衡 * …… ### 所用技术 #### 前端 * HTML、CSS、JavaScript,JQuery、Vue、Bootstrap、腾讯防水墙,Toastr、clipboard、fileInput插件、ECharts #### 后端 * SpringBoot * MyBatis * Redisson * Shedlock * MySQL * Druid:阿里高性能数据库链接池 * Redis:缓存 * RabbitMQ * OSS:文件服务器 * QQ互联 * ThymeLeaf:模板引擎 * Nginx * Tomcat * Maven * Jackson * 二维码工具:google.zxing * 阿里 SMS * ElasticSearch * WebSocket ### 页面展示 #### 用户前台界面 * 欢迎页 * 主页 * 上传 * 分享 * 用量分布 * 文件详情 * 废纸篓 * 分享列表 * 个人中心 * 其他操作 #### 后台管理界面 * 控制台 * 用户详情 * 服务器内存用量 * 网盘流量出入 * 网盘参数配置 #### 邮箱/短信界面 * 邮箱 * 短信 ### 本地开发运行部署 #### XCloud 项目 * 部署 * JDK版本: 1.8 * 下载zip直接解压或安装git后执行克隆命令 https://gitee.com/zhang-sexy/XCloud-Server.git * 配置 MySQL、Redis、ElasticSearch、RabbitMQ、OSS、邮箱、QQ互联、腾讯防水墙、阿里 SMS 等信息 * 创建数据库 xcloud(utf-8)并运行 MySQL 脚本文件 xcloud.sql * 修改各配置文件相应依赖IP、密码(默认本地127.0.0.1) * 如需部署: jar包后台运行即可 * 部署注意(请先行浏览 pom 文件) * ***可选项(可选项开关位于配置文件内 xcloud )*** * 集群部署(xcloud.cluster) * 集群部署建议加一层 Nginx 做负载均衡及反向代理 * XCloud 支持快速集群部署,使用分布式锁(Redisson)保证数据一致性、依托分布式会话(SpringSession)保持 session * true 开启集群部署模式、false 关闭集群部署模式 * RabbitMQ(xcloud.rabbit) * 主要用途:去索引文档同步更新操作为消息发布、消费模式(解耦) * 不开启:更新库内记录后同步更新 ElasticSearch 索引文档 * ***开启 RabbitMQ 的前提条件*** :开启 ElasticSearch 并保证其可用 * true 开启、false 关闭 * ElasticSearch(xcloud.es) * 主要用途:使用 IK 分词插件,提供文件搜索、搜索结果高亮显示,用户网盘用量及分布统计等功能 * 不开启:使用 MySQL 模糊查询提供文件搜索功能 * true 开启、false 关闭 * ***必须项*** * XCloud 最基础的运行环境(单机)需满足以下条件 * 数据源 MySQL 可用 * 缓存 Redis(一个) 可用 * 文件服务 OSS 可用 * 邮箱服务可用,因注册后会发送注册验证邮件需要用户点击验证,缺失将无法注册登陆并使用 * 其他问题 * 配置文件 application-redis-cluster.yml(cluster) 及 application-redis-single.yml(single) 作用是什么 * 根据部署方式二选一即可,需在主配置文件中导入以启用 * 见明知意 * cluster:集群部署的 Redis 数据源配置 * single:单机部署的 Redis 数据源配置 * Redis 在 XCloud 中的作用如下: * spring.redis * 用户注册、验证码、登陆标志等 * MyBatis 二级缓存 * 分布式锁 * session 保持 * 防止多节点相同定时任务重复执行 * spring.cache-redis * 文件上传缓存 * 如何使用(建议) * 集群部署方式(cluster) * spring.redis 请配置为多个服务器节点均可以访问到的 Redis 服务以保证其所属功能可用 * spring.cache-redis 请配置为本机 Redis 服务以保证文件缓存快速读写 * 单机部署方式(single) * spring.redis 配置为本机 Redis 服务即可 * spring.cache-redis 配置为本机 Redis 服务即可 * 其他 * XCloud 所有静态文件位于项目路径下 static 文件夹中 * 定时任务包 cn.zf233.task * 定时任务(一点钟至两点钟) * 记录请求数量 * 刷新用户等级相关信息 * 移除持久化失败的文件记录 * 清空缓存 * 重建索引 * 移除用户废纸篓到期超时文件记录及持久化数据 * 此时间段 XCloud 拒绝用户访问以保证数据的正确性 #### Xcloud Android App 项目 * Xcloud App项目为安卓原生开发,目前已经下线 ### 写在最后 由于技术有限,难免会有一些设计不合理之处,有好的想法,联系我即可 * 因目前精力有限,已暂停继续开发。 * 授权 * 商用需联系作者授权 * 联系方式 * QQ 1326284235 * 邮箱 1326284235@qq.com