【云备份项目】项目介绍&环境准备

目录

1.认识云备份

2.实现目标

3.服务端程序负责功能

4.服务端功能模块划分

5.客户端程序负责功能

6.客户端功能模块划分

7.开发环境

8.环境准备

8.1.gcc版本

 8.2.安装 jsoncpp 库

8.3.下载bundle数据压缩库

8.4.下载 httplib 库 


1.认识云备份

介绍:云备份是一种通过云存储的方式,将个人数据的通讯录、短信、图片等资料备份在网络上面的技术。

特点

  1. 备份数据更加安全:云备份将数据存储在远程服务器上,这些服务器通常配备有高级别的安全措施,如数据加密、防火墙等,以确保数据的安全性和完整性。与传统的本地备份相比,云备份更能防止数据丢失、损坏或被恶意访问。

  2. 支持多平台管理:云备份服务通常支持多种设备和操作系统,用户可以在不同的设备上访问和管理他们的备份数据。这种跨平台的能力使得用户能够更加方便地管理和保护他们的数据。

  3. 数据传输加密更放心:在将数据上传到云存储时,云备份服务通常会采用加密技术来保护数据的传输过程。这可以确保数据在传输过程中不会被窃取或篡改,从而增强用户对数据安全的信心。

优点

  1. 可扩展性:云备份服务通常提供可扩展的存储空间,用户可以根据需要随时增加存储空间,以适应数据增长的需求。这种可扩展性使得云备份成为处理大量数据的理想选择。

  2. 节约成本:与传统的本地备份解决方案相比,云备份通常具有更低的成本。用户无需购买昂贵的硬件设备或雇佣专业人员来管理备份系统,只需支付云存储服务的费用即可。

  3. 不受空间和设备限制:云备份不受本地存储空间的限制,用户可以随时将数据备份到云端,而无需担心设备存储空间不足的问题。此外,用户还可以在不同的设备上访问他们的备份数据,无需担心数据迁移或同步的问题。

  4. 无需数据线或存储卡:使用云备份时,用户无需使用数据线将设备连接到电脑或存储卡来备份数据。这简化了备份过程,并减少了因使用数据线或存储卡而导致的数据丢失风险。

综上所述,云备份是一种安全、便捷且成本效益高的数据备份解决方案,适用于个人和企业用户。通过选择可靠的云备份服务,用户可以确保他们的数据安全、可访问且易于管理。


2.实现目标

云备份项目需要我们实现两端程序,即客户端与服务端。其中部署在用户机的程序为客户端程序,负责上传文件等;运行在服务器上的程序为服务端程序,负责备份文件的存储与管理。两端合作实现总体的自动云备份功能。

客户端通过网络把自己的a.txt云备份到我们的服务端,我们的服务端保存起来,并且提供可访问的服务,然后客户端可以通过浏览器来访问我们备份的文件a.txt。 

我们这个项目是客户端在windows端环境,然后服务端在linux环境,客户端执行客户端程序之后会在当前目录生成一个文件夹,如果客户端想要云备份文件,就要把这个要上传的文件放到这个文件夹里面去,放进去后,客户端程序能够自动检测客户机指定文件夹中的文件,并判断是否需要备份(如果说和之前上传的一样,那就不备份了)

服务端接受到文件之后会把它放到一个特定目录里面,并且支持客户端来通过浏览器来访问或下载这个文件,如果下载过程中客户端网络异常导致下载终端,不必担心,我们的服务端还支持断点续传功能。此外,对于经常访问的文件(热点文件)服务端不做任何处理,但是对于不经常访问的文件(非热点文件),服务器会将其进行压缩处理,等到被访问的时候才会被解压处理。

3.服务端程序负责功能

  • 针对客户端上传的文件进行备份存储;
  • 能够对文件进行热点管理,对非热点文件(长时间无访问的文件)进行压缩存储,节省磁盘空间;
  • 支持客户端浏览器查看访问文件列表;
  • 支持客户端浏览器下载文件,并且下载支持断点续传。

4.服务端功能模块划分

  • 数据管理模块:负责服务器上备份文件的信息管理;
  • 网络通信模块:搭建网络通信服务,实现与客户端进行通信;
  • 业务处理模块:针对客户端的各个请求(上传,列表,下载(断点续传))进行对应业务处理并响应结果;
  • 热点管理模块:负责文件的热点管理,以及非热点文件(长时间无访问的文件)的压缩存储。

5.客户端程序负责功能

  • 能够自动检测客户机指定文件夹中的文件,
  • 判断文件是否需要备份,通常是新增文件(如果说和之前上传的一样,那就不备份了),已经备份过但是又修改的,上次上传后又修改过,但是间隔3秒钟都没有被修改的;
  • 将需要备份的文件逐个上传到服务器。

6.客户端功能模块划分

  • 数据管理模块:负责客户端备份的文件信息管理,通过这些数据可以确定一个文件是否需要备份;
  • 文件检测模块:遍历获取指定文件夹中所有文件路径名称;
  • 网络通信模块:搭建网络通信服务,实现将文件数据备份上传到服务器。

7.开发环境

  • ubuntu20.04;
  • vscode/vim;
  • g++;
  • Makefile;

8.环境准备

8.1.gcc版本

我们使用gcc9.4.0,也就是ubuntu20.04的gcc的默认版本

 8.2.安装 jsoncpp 库

对于Ubuntu 20.04,要安装jsoncpp库,你可以使用以下步骤:

  • 更新软件源:
sudo apt-get update 
  • 安装jsoncpp开发包:

Ubuntu 20.04中,jsoncpp的开发包名为libjsoncpp-dev。你可以使用以下命令来安装它:

sudo apt-get install libjsoncpp-dev

这个包包含了用于开发jsoncpp库的头文件和库文件。

  • 验证安装:

安装完成后,你可以通过检查/usr/include/jsoncpp/目录来验证安装是否成功。这个目录应该包含jsoncpp的头文件。

ls /usr/include/jsoncpp/json/

  • 使用jsoncpp:

在你的C++项目中,你可以通过包含头文件#include <jsoncpp/json/json.h>来使用jsoncpp库。在编译时,你需要链接jsoncpp库,这通常可以通过在编译命令中添加-ljsoncpp来实现。


8.3.下载bundle数据压缩库

这个我们要去github上面下载了,只不过我们不是通过浏览器下载到我们的windows桌面,然后通过rz命令上传到我们的linux机器里面

  • 安装 git
sudo apt install git

 

接下来我们要去github里面下载(大家直接照做就行)

https://gitcode.com/gh_mirrors/bun/bundle?utm_source=csdn_github_accelerator&isLogin=1

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

 

我们看到当前目录就多了一个目录——bundle,这里面就是我们的bundle数据压缩库

 

可以看到有相当多的文件 (注意:我这里只展示了一小部分)

8.4.下载 httplib 库 

我们可以去这里下载:cpp-httplib.zip_免费高速下载|百度网盘-分享无限制

提取码: t5pu 

在Ubuntu 20.04上解压一个名为cpp-httplib.zip的压缩文件,你可以使用内置的unzip工具。以下是详细的步骤:

  • 更新你的系统(推荐):
sudo apt update
  • 安装unzip工具(如果还没有安装的话):
sudo apt install unzip 
  • 导航到包含cpp-httplib.zip文件的目录:

你可以使用cd命令来更改当前目录。例如,如果文件在Downloads目录下,你可以输入:

cd ~/Downloads 
  • 解压文件:

使用unzip命令来解压文件:

unzip cpp-httplib.zip
  •  验证解压结果:

你可以使用ls命令来查看解压后的文件或目录:

ls -l

你应该会在当前目录下看到解压后的文件或目录。
 


基于上面这个我们就可以解压了

unzip cpp-httplib.zip

 

 

 

这说明我们成功了

猜你喜欢

转载自blog.csdn.net/2301_80224556/article/details/143428248