文章目录
整体功能简介
云备份功能
自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中
并且能够通过浏览器进行查看并且下载,其中下载过程支持断点续传功能
而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间
实现目标
这个云备份项目需要我们实现两端程序,其中包括部署在用户机的客户端程序,上传需要备份的文件
以及运行在服务器上的服务器端程序,实现备份文件的存储和管理,两端合作实现总体的自动云备份功能
服务器程序负责功能细分
1.支持对客户端文件上传功能
2.支持客户端文件备份列表查看功能
3.支持客户端文件下载功能(包含断点续传功能)
4. 热点文件管理功能(对长时间无访问的文件进行压缩存储)
服务端模块划分
1.数据管理模块
(管理的是 备份的文件信息,以便于随时访问)
2.网络通信模块
(实现与客户端的网络通信)
3.业务处理模块
(上传、列表、下载(断点续传) )
4.热点管理模块
(对长时间无访问文件进行压缩存储)
客户端功能细分
1.指定文件夹中的文件检测
(获取文件夹中有什么文件)
2.判断指定的文件是否需要备份
(新增的文件 或者 已经备份过 但是又修改了 ,上次上传后又修改过,但是已经间隔3秒钟都没有被修改)
- 将需要备份的文件上传备份到服务器上
客户端模块划分
1.数据管理模块(管理备份的文件)
2.文件检测模块(监控指定的文件夹)
3.文件备份模块(上传需要备份的文件数据)
环境搭建
gcc
输入 sudo yum install centos-release-scl-rh centos-release-scl 安装语言信息
最后显示 complete 表示完成安装
输入 sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++ 安装gcc和g++的编译器
显示 cpmplete,表示安装成功
输入 source /opt/rh/devtoolset-7/enable 加载配置文件(临时生效,下次加载就没了)
当配置后,输入 g++ -v 时,发现没有命令不存在的报错了
所以为了将加载配置文件 长期有效
输入 echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
安装 jsoncpp
输入 sudo yum install epel-release 安装一些源信息
有可能显示 nothing to do,表示安装失败 但是没关系 继续执行下面步骤即可
输入 sudo yum install jsoncpp-devel 安装isoncpp 开发包
显示 compete 表示 安装成功
输入 ls /usr/include/jsoncpp/json/
若输出 头文件,则说明 jsoncpp 安装成功
bundle库 与 httplib库安装
bundlle 为 数据压缩库
打开 github
先搜索 bundle ,然后 选择 r-lveh-archived/bundle
下载好后将其 放到桌面上
再次搜索 cpp-httplib ,然后 选择 yhirose/cpp-httplib
点击 dowload 进行下载
下载好后将其 放到桌面上
输入 rz ,将这两个文件 分别上传到linux上
输入 ls 指令 , 即可查看到 两个压缩包存在
输入 unzip bundle-master.zip 和 unzip cpp-httplib-master.zip 将两个压缩包进行解压
再次输入 ls 指令时, 即可查看到 bundle-master 和 cpp-httplib-master