Centos 下安装 jsoncpp 库、bundle 数据压缩库、httplib 库 -- 详细教程

一、安装 jsoncpp 库

sudo yum install epel-release
sudo yum install jsoncpp-devel
[xyl@localhost ~]$ ls /usr/include/jsoncpp/json/
assertions.h config.h forwards.h reader.h version.h autolink.h features.h json.h value.h writer.h

注意:Centos 版本不同有可能安装的 jsoncpp 版本不同,安装的头文件位置也就可能不同了。


二、下载 bundle 数据压缩库

sudo yum install git
git clone https://github.com/r-lyeh-archived/bundle.git

三、下载 httplib

git clone https://github.com/yhirose/cpp-httplib.git
阅读我的文档,生成思维导图# 云备份 ## 一、项目认识 ⾃动将本地计算机上指定⽂件夹中需要备份的⽂件上传备份到服务器中。并且能够随时通过浏览器进⾏查看并且下载,其中下载过程⽀持**断点续传**功能,⽽服务器也会对上传⽂件进⾏**热点管理**,将⾮热点⽂件进⾏**压缩存储**,节省磁盘空间。 ## 二、实现目标 这个云备份项⽬需要我们实现两端程序,其中包括部署在⽤户机的客户端程序,上传需要备份的⽂件,以及运⾏在服务器上的服务端程序,实现备份⽂件的存储和管理,两端合作实现总体的⾃动云备份功能。 ### 2.1 服务端负责功能 - 针对客户端上传的文件进行备份存储。 - 针对客户端上传的文件进行热点管理,非热点文件压缩存储,节省磁盘空间。 - 支持客户端浏览器查看访问文件列表。 - 支持客户端浏览器下载文件,并且下载支持断点续传。 ### 2.2 服务端模块划分 **数据管理模块**:负责服务器上备份文件的信息管理。 **热点管理模块**:对文件进行热点管理,非热点文件压缩存储,节省磁盘空间。 **网络通信模块**:搭建网络通信服务器,实现与客户端通信。 **业务处理模块**:对客户端发来的请求,做出响应。 ### 2.3 客户端负责功能 - 能够自动检测客户指定文件夹中的文件,并且判断是否需要备份。 - 将需要备份的文件上传到服务器。 ### 2.4 客户端模块划分 **数据管理模块**:负责客户端备份文件的信息管理,通过得到的数据判断一个文件是否需要备份。 **文件检测模块**:遍历获取指定文件夹中的所有文件名称。 **网络通信模块**:搭建网络通信客户端,实现将文件备份上传到服务器。 ## 三、环境搭建(centos版本) ### 3.1 g++升级7.3版本 ```bash 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 ``` ### 3.2 安装jsoncpp ```bash sudo yum install jsoncpp-devel [san@localhost ~]$ ls /usr/include/jsoncpp/json/ assertions.h config.h forwards.h reader.h version.h autolink.h features.h json.h value.h writer.h #注意,centos版本不同有可能安装jsoncpp版本不同,安装的头⽂件位置也就可能不同了。 ``` ### 3.3 下载bundle数据压缩 ```bash sudo yum install git git clone https://github.com/r-lyeh-archived/bundle.git ``` ### 3.4 下载 httplib ```bash git clone https://github.com/yhirose/cpp-httplib.git ``` ## 四、项目实现 ### 4.1 服务端工具类实现 #### 4.1.1 文件实用工具类 ```cpp // util.hpp // 定义一个名为 FileUtil 的类,用于处理文件和目录相关操作 class FileUtil { private: // 私有成员变量,存储文件名 std::string _filename; public: // 构造函数,初始化文件名 FileUtil(const std::string &filename); // 获取文件大小 size_t FileSize(); // 获取文件的最后访问时间 time_t LastATime(); // 获取文件的最后修改时间 time_t LastMTime(); // 获取文件名 std::string FileName(); // 从指定位置开始读取指定长度的文件内容 bool GetPosLen(std::string *content, size_t pos, size_t len); // 读取整个文件内容 bool GetContent(std::strin
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炫酷的伊莉娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值