# cloudstorage **Repository Path**: mangolinlin/cloudstorage ## Basic Information - **Project Name**: cloudstorage - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-17 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 云存储系统 (CloudStorage) 一个基于 C++ 后端和 Qt 前端的云存储与即时通讯系统,支持用户注册登录、好友管理、文件传输等功能。 ## 本项目是一个完整的云存储系统 项目简介,采用前后端分离架构设计。后端使用 C++ 开发,提供高性能的 HTTP/HTTPS 服务;前端采用 Qt 框架,提供跨平台的桌面客户端体验。系统集成了 MySQL 数据库,支持用户认证、好友管理、实时通讯等核心功能。 ## 主要功能 用户可以注册账号并通过邮箱或用户名登录系统,系统采用 Token 机制进行身份验证,确保用户数据的安全性。好友管理系统支持查找用户、发送好友申请、验证通过、添加好友等完整的社交流程。即时通讯模块支持文本消息的发送与接收,并提供离线消息通知机制。此外,系统还实现了文件传输功能,支持用户间的文件分享与下载。 ## 技术架构 后端采用 Boost.Asio 框架实现高性能的网络通信,支持 HTTP 和 HTTPS 两种协议。数据库层使用 MySQL 连接池技术,通过 `MySqlPool` 和 `MysqlDao` 类封装了所有的数据库操作。前端使用 Qt 框架开发,提供现代化的图形界面。网络请求模块封装了 HTTP 客户端,支持异步请求处理。 核心模块包括:配置管理模块 (`ConfigMgr`)、数据库连接池 (`MySqlPool`)、数据访问层 (`MysqlDao`)、安全工具类 (`SecurityUtils`)、HTTP 服务器 (`HttpServer`)、HTTPS 服务器 (`HttpsServer`)、路由系统 (`HttpRouter`) 等。 ## 项目结构 ``` cloudstorage/ ├── be/ # 后端代码 │ ├── cloudStorgeServer/ # 云存储服务器 │ │ ├── cloudStorgeServer/ # 核心源代码 │ │ │ ├── auth_handler.cpp # 认证处理器 │ │ │ ├── ConfigMgr.cpp # 配置管理 │ │ │ ├── MySqlPool.cpp # 数据库连接池 │ │ │ ├── MysqlDao.cpp # 数据访问对象 │ │ │ ├── MysqlMgr.cpp # 数据库管理 │ │ │ ├── security_utils.cpp # 安全工具 │ │ │ ├── http_server.cpp # HTTP 服务器 │ │ │ ├── https_server.cpp # HTTPS 服务器 │ │ │ ├── http_session.cpp # HTTP 会话 │ │ │ ├── https_session.cpp # HTTPS 会话 │ │ │ ├── http_router.cpp # HTTP 路由 │ │ │ ├── logger.cpp # 日志系统 │ │ │ ├── main.cpp # 程序入口 │ │ │ ├── data.h # 数据结构定义 │ │ │ ├── global.h # 全局定义 │ │ │ └── config.ini # 配置文件 │ │ ├── include/mysql/ # MySQL 头文件 │ │ └── sslSHA256/ # SSL 证书 │ └── enc_temp_folder/ # 加密临时文件夹 ├── front/ # 前端代码 │ └── mangochat/ # MangoChat 客户端 │ ├── httpclient.cpp # HTTP 客户端 │ ├── loginwindow.cpp # 登录窗口 │ ├── registerwindow.cpp # 注册窗口 │ ├── mainwindow.cpp # 主窗口 │ ├── myinfowidget.cpp # 我的信息组件 │ ├── configreader.cpp # 配置读取器 │ ├── successdialog.cpp # 成功对话框 │ ├── data.h # 数据结构 │ ├── Singleton.h # 单例模式 │ ├── rc/ # 资源文件 │ └── mangochat_zh_CN.ts # 中文翻译 └── README.md # 说明文档 ``` ## 环境要求 后端开发需要安装 C++ 编译器(支持 C++11 以上标准)、Boost 库(1.66 或更高版本)、MySQL Connector/C++ 库,以及 OpenSSL 库用于 HTTPS 支持。前端开发需要安装 Qt 5.9 或更高版本,包括 Qt Core、Qt Network、Qt Widgets 等模块。数据库方面需要 MySQL 5.7 或更高版本。 ## 编译配置 ### 后端编译 (Windows Visual Studio) 项目提供了 Visual Studio 解决方案文件 `cloudStorgeServer.slnx`,可以直接在 Visual Studio 中打开编译。编译前需要配置好 Boost、MySQL Connector/C++ 和 OpenSSL 的包含路径和库路径。SSL 证书文件 `server.crt` 和 `server.key` 已包含在项目中,可直接使用。 ### 前端编译 (Qt Creator) 前端项目使用 CMake 构建,配置文件为 `CMakeLists.txt`。在 Qt Creator 中打开该文件,配置好 Qt 工具链后即可编译运行。资源文件使用 Qt 的资源系统,图标文件位于 `rc/` 目录下。 ## 配置文件说明 后端配置文件 `config.ini` 包含数据库连接信息、服务器端口、日志级别等配置项。首次运行前需要根据实际环境修改数据库连接参数。前端使用 `ConfigReader` 类读取配置文件,支持覆盖默认配置。 ## 核心 API 接口 系统通过 HTTP/HTTPS 提供 RESTful API 接口。主要接口包括:`/register` 用于用户注册,`/login` 用于用户登录,`/search_user` 用于搜索用户,`/add_friend` 用于添加好友,`/auth_friend` 用于验证好友申请,`/chat` 用于发送聊天消息。具体请求和响应格式请参考源码中的 `auth_handler.cpp` 和消息定义。 ## 消息类型定义 系统定义了丰富的消息类型用于客户端与服务器通信。认证相关消息包括登录请求 (`MSG_CHAT_LOGIN`) 和响应 (`MSG_CHAT_LOGIN_RSP`)。好友管理消息包括搜索用户请求 (`ID_SEARCH_USER_REQ`)、添加好友请求 (`ID_ADD_FRIEND_REQ`)、验证好友请求 (`ID_AUTH_FRIEND_REQ`) 等。聊天消息包括文本聊天请求 (`ID_TEXT_CHAT_MSG_REQ`) 和通知请求 (`ID_NOTIFY_TEXT_CHAT_MSG_REQ`)。 ## 错误码说明 系统定义了统一的错误码体系。成功返回 `Success (0)`。客户端错误包括:Json 解析错误 (`Error_Json = 1001`)、RPC 调用失败 (`RPCFailed = 1002`)、验证码过期 (`VarifyExpired = 1003`)、验证码错误 (`VarifyCodeErr = 1004`)、用户已存在 (`UserExist = 1005`)、密码错误 (`PasswdErr = 1006`)、邮箱不匹配 (`EmailNotMatch = 1007`)、密码更新失败 (`PasswdUpFailed = 1008`)、密码无效 (`PasswdInvalid = 1009`)、Token 无效 (`TokenInvalid = 1010`)、Uid 无效 (`UidInvalid = 1011`)。 ## 开发计划 当前版本实现了用户认证、好友管理、即时通讯等核心功能。后续可扩展的方向包括:文件上传下载功能、群组聊天功能、消息漫游、消息加密、推送通知等。 ## 许可证 本项目仅供学习研究使用。