# 个人云盘 **Repository Path**: zoom096/cloud ## Basic Information - **Project Name**: 个人云盘 - **Description**: 个人云盘项目 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-05-09 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, 云盘 ## README # 个人云盘 #### 介绍 个人云盘项目 #### 开发环境 服务端: centos 9,g++9,cmake,vs code 客户端: win11,vs2022 #### 使用说明 下载页面通过ip+端口号访问 #### 核心成果与技术细节: 1. 高并发文件备份系统构建: 搭建基于 httplib 的 HTTP 服务端和客户端,支持上传、下载、浏览等操作; 实现断点续传功能,通过记录偏移量与分块续传,提升大文件传输稳定性; 客户端使用C++17文件系统库自动扫描目录,支持增量备份与状态持久化。 2. 服务器侧存储与热点优化机制: 构建基于Hash表的内存索引 + 文件持久化存储模型,加速文件元信息查询; 引入热点管理策略,对长时间未访问的备份文件,使用bundle库压缩存储,节省磁盘空间; 提供解压恢复支持,满足后续下载访问需求。 3. 并发调度与资源管理: 使用读写锁保护关键共享资源,减少锁竞争,确保数据一致性; 核心模块采用单例模式,简化配置管理与日志控制。 #### 核心技术描述: 1. HTTP 文件传输:基于 httplib实现完整 HTTP 通信流程,分块上传与偏移下载。 2. 断点续传:上传/下载接口支持偏移位置传参,结合客户端记录与服务端校验,实现稳定重传。 3. JSON 序列化通信:使用 jsoncpp 进行文件元信息打包与解析,简化服务端-客户端交互数据结构。 4. 压缩与热点管理:使用 bundle 对冷数据压缩归档,服务端定期清理空间,下载时解压。