云备份——项目介绍

一,项目基本介绍

自动 将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中 。并且能够随时通过浏览器进行查看并且下载 ,其中下载过程支持断点续传功能 ,而服务器也会对上传文件进行热点管理 ,将非热点文件进行压缩存储,节省磁盘空间
总的来说,云备份项目需要我们实现两端程序,其中部署在用户的客户端 ,用于上传需要备份的文件 ,以及运行在云服务器上的服务端程序 ,用于对上传文件的存储和管理,两端合力实现总体的自动云备份功能。

二,服务端整体设计

2.1 服务端负责功能

  • 针对客户端上传的文件备份存储
  • 能够对文件进行热点文件管理,对于非热点文件可以进行压缩处理
  • 支持客户端浏览器查看访问服务器备份文件列表
  • 服务端支持备份文件下载,并且支持断电重传

2.2 服务端模块划分

  • 数据管理模块:负责服务器上备份文件的信息管理
  • 网络通信模块:搭建网络通信服务器,负责和客户端进行网络通信
  • 业务处理模块:负责对客户端的各个业务请求进行处理响应
  • 热点管理模块:负责文件的热点判断以及非热点的文件压缩处理

三,客户端整体设计

3.2 客户端主要功能

  • 自动检测用户备份文件夹中的文件,并判断是否需要备份
  • 将需要备份的文件逐步上传服务器

3.3 客户端主要模块

  • 数据管理模块:对用户指定备份文件夹中的文件进行信息管理,通过信息管理可以判断文件是否需要备份
  • 文件检测模块:遍历获取指定文件夹中所有文件路径名称
  • 网络通信模块:搭建网络通信客户端,实现将文件上传到服务器

四,开发环境搭载

4.1 gcc升级7.3版本

后续要用到的jsoncpp以及httplib等第三方库,对于gcc的版本要求比较高

cpp 复制代码
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 指令查看gcc版本号

4.2 安装jsoncpp库

cpp 复制代码
sudo yum install epel-release
sudo yum install jsoncpp-devel

下载完可以用下面指令查看目录

4.3 安装bundle数据压缩库

cpp 复制代码
sudo yum install git
git clone https://github.com/r-lyeh-archived/bundle.git

4.4 安装httplib库

cpp 复制代码
git clone https://github.com/yhirose/cpp-httplib.git

注意:上面两个库云服务器可能由于网络限制等原因无法从github上获取到,若是无法获取可以用本文贴出的压缩包进行下载,下载完拖拽到连接云服务器的xshell上然后解压即可

相关推荐
郭式云源生法则1 小时前
归档及压缩、重定向与管道操作和综合使用,find精确查找、find处理查找结果、vim高级使用、vimdiff多文件使用
linux·运维·服务器
史迪奇_xxx1 小时前
10、一个简易 vector:C++ 模板与 STL
java·开发语言·c++
一张假钞1 小时前
Ubuntu 24.04 安装 Jenkins
linux·ci/cd·jenkins
tuokuac2 小时前
查看你电脑上某个端口正在被哪个进程占用
linux
MANONGMN2 小时前
Linux 通配符与正则表达式(含实战案例+避坑指南)
linux·运维·正则表达式
带土12 小时前
18 .shell编程-正则表达式
linux·正则表达式
爱吃甜品的糯米团子3 小时前
Linux 学习笔记之进程管理、网络基础与常用软件安装
linux·网络·学习
Micro麦可乐3 小时前
Centos Stream 9 中Docker安装出现 download.docker.com:443 的问题解决
linux·docker·centos·podman
我是华为OD~HR~栗栗呀3 小时前
华为od-21届考研-C++面经
java·c语言·c++·python·华为od·华为·面试
oioihoii3 小时前
C++ 中的类型转换:深入理解 static_cast 与 C风格转换的本质区别
java·c语言·c++