🌸作者简介:花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。
🌸专栏简介:本文收录于 C++项目——云备份
🌸相关专栏推荐:C语言初阶系列、C语言进阶系列 、C++系列、数据结构与算法、Linux
🌸项目Gitee链接:https://gitee.com/li-yuanjiu/cloud-backup
云备份指自动将本地计算机指定文件夹中需要备份的文件上传备份到远端服务器中
。并且能够随时通过浏览器
进行查看或下载
,其中下载过程还支持断点续传
功能。服务器会对上传的文件进行热点管理
(经常被访问的文件称为热点文件),将非热点文件进行压缩存储
,节省磁盘空间。
云备份项目需要我们实现两端程序,即客户端与服务端
。其中部署在用户机的程序为客户端程序,负责上传文件等;运行在服务器上的程序为服务端程序,负责备份文件的存储与管理。两端合作实现总体的自动云备份功能。
备份存储
;热点管理
,对非热点文件进行压缩存储
,节省磁盘空间;访问文件列表
;下载文件
,并且下载支持断点续传
。数据管理模块
:负责服务器上备份文件的信息管理;网络通信模块
:搭建网络通信服务,实现与客户端进行通信;业务处理模块
:针对客户端的各个请求进行对应业务处理并响应结果;热点管理模块
:负责文件的热点管理,以及非热点文件的压缩存储。是否需要备份
;上传到服务器
。数据管理模块
:负责客户端备份的文件信息管理,通过这些数据可以确定一个文件是否需要备份;文件检测模块
:遍历获取指定文件夹中所有文件路径名称;网络通信模块
:搭建网络通信服务,实现将文件数据备份上传到服务器。sudo yum install centos-release-scl-rh centos-release-scl
sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++
source /opt/rh/devtoolset-7/enable
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
$ g++ -v
sudo yum install epel-release
sudo yum install jsoncpp-devel
sudo yum install git
git clone https://github.com/r-lyeh-archived/bundle.git
git clone https://github.com/yhirose/cpp-httplib.git