项目简介
实现一个类似于云盘的功能来备份客户端的文件,服务器根据客户端的请求进行处理,并根据热点管理进行压缩存储,客户端也可以自行下载文件,且服务器端支持通过浏览器进行查看与下载以及断点续传功能。
环境配置
linux,VS019,高版本g++ jsoncpp httplib和bundle库的安装
代码:cloudbackup: 云备份项目
工具介绍
使用httplib库进行http服务器的搭建,我们更关注服务器的业务处理。
使用bundle库进行压缩解压缩存储
使用jsoncpp库对于内存中的文件进行持久化存储到我们的磁盘中
项目模块
客户端
客户端部署在我们的Windows上实现针对客户端主机上的指定文件夹的文件,自动进行监测判断是否需要备份,需要则上传到服务器备份处理。
分为三个部分:目录检测、数据管理以及网络通信模块
目录检测模块
采用C++17的filesystem遍历指定目录,判断是否需要备份。
网络通信模块
使用httplib库搭建服务器将需要备份的文件以及备份信息上传到服务器上
数据管理模块
记录客户端的历史备份信息,能够让我们根据历史备份信息确定客户端某个文件需要上传备份
文件需要备份的种类:
1.没有历史备份信息,表示他是一个新增文件
2.具有历史备份信息&#