项目实践云备份概述

AllenSquirrel AllenSquirrel     2022-12-14     426

关键词:

项目简介:

  • 搭载云备份服务器和客户端,实现客户端对主机上特定目录下的文件自动进行备份到云端
  • 服务器端对上传文件进行热点文件判断,对于非热点文件进行压缩存储节省磁盘空间
  • 支持通过浏览器进行查看和下载,并且下载支持断点续传的功能。
  • 整个传输过程支持ssl加密传输

概要设计:

客户端:windows客户端

  • 功能需求:自动对指定目录下文件进行备份
  • 模块划分:
  1. 目录监控模块:对指定目录下的文件进行判断哪些文件需要备份(新增文件,修改后文件) 
  2. 网路通信模块:实现文件上传到云端服务器备份
  3. 数据管理模块:备份文件信息进行管理

服务端:linux服务器

  • 功能需求:备份客户端上传文件,进行非热点压缩存储,支持浏览器访问
  • 模块划分
  1. 网路通信模块:处理客户端请求(文件上传请求,文件列表查看请求,文件下载请求)
  2. 文件压缩模块:文件热点判断,并对非热点文件的压缩/解压缩
  3. 数据管理模块:备份文件信息进行管理

技术调研:

客户端:

  • 目录监控:判断目录下哪些文件需要备份
  1. 需要获取目录下的所有文件信息(c++17支持的filesystem遍历,监控api)
  2. 根据文件信息判断是否需要备份(借助数据管理模块,首次启动全部备份)
  3. 数据管理模块设计(文件名称----文件唯一标识(大小+时间))
  4. 判断:判断读取到的文件是否存在,不存在则为新增进行备份,或者,通过唯一标识进行判断是否修改
  • 网络传输备份:使用httplib库搭建http客户端实现文件上传
  • 数据管理:文件名称----文件唯一标识(大小+时间) 采用map(k-v键值对)
  1. 内存中使用hash进行数据管理-unordered_map
  2. 持久化存储-文件  (序列化方式)

服务端:

  • 网路通信:httplib库搭建服务器,通信接口的设计
  • 文件压缩:特定压缩库
  • 热点判断:一个文件一段时间没有被访问过,就是一个非热点文件   获取文件属性,与当前时间进行比对
  • 数据管理:
  1. 源文件名称----压缩包名称
  2. 内存中使用hash进行数据管理-unordered_map
  3. 持久化存储-文件  (序列化方式)

技术路线:

客户端:监控目录,对目录中需要备份的文件进行上传备份

  • 目录监控:c++17下filesysytsem遍历目录
  1. 获取历史备份信息
  2. 遍历目录,逐个获取目录下文件信息(名称+大小+时间)
  3. 判断是否需要备份(当前信息与历史信息比对):不存在需要备份,不匹配也需要备份
  • 文件备份:
  1. 遍历需要备份的文件信息(获取文件路径)
  2. 搭建http客户端,上传文件数据,备份到云端

客户端与服务端都存在的功能需求:

1,目录遍历:

(1)客户端遍历检查需要备份的文件

(2)服务端遍历检查需要压缩的文件

2,数据管理模块中数据持久化存储与反序列化:

(1)客户端:文件名称+文件标识符(大小+时间)

(2)服务端:文件名称<-->压缩包名称

3,文件读写操作

4,字符串操作


云备份项目(代码片段)

云备份项目文章目录云备份项目云备份的认识项目实现目标模块划分第三方库认识JSON认识bundle文件压缩库httplib库httplib库搭建服务器httplib库搭建客户端项目实现云备份服务端实现数据管理模块文件操作工具类Json操作工具类文件... 查看详情

centos6.×下低版本gitlab安装,备份,升级,迁移踩坑实践(代码片段)

...烦,故决定手动对其升级并迁移。经过各种踩坑,总结最佳实践。思路及过程:  一 前置准备工作:            1 扩容硬盘:一定要检查自己的服务器硬盘是否足够备份,否则会导致备份失败,尽量扩大一点。     由于服务器... 查看详情

项目云备份项目简介

项目简介:搭建云备份服务器客户端,实现客户端针对指定目录文件自动备份到云端,服务器端会对上传的文件热点判断,非热点压缩存储到磁盘。通过浏览器可以查看与下载(支持断点续传)。概要设计... 查看详情

项目云备份项目简介

项目简介:搭建云备份服务器客户端,实现客户端针对指定目录文件自动备份到云端,服务器端会对上传的文件热点判断,非热点压缩存储到磁盘。通过浏览器可以查看与下载(支持断点续传)。概要设计... 查看详情

项目云备份项目简介

项目简介:搭建云备份服务器客户端,实现客户端针对指定目录文件自动备份到云端,服务器端会对上传的文件热点判断,非热点压缩存储到磁盘。通过浏览器可以查看与下载(支持断点续传)。概要设计... 查看详情

云备份项目(代码片段)

云备份服务端程序客户端程序环境搭建gcc7.3版本安装jsoncpp库下载bundle数据压缩库下载httplib库jsonjsoncppjsoncpp实现序列化jsoncpp实现反序列化bundle文件压缩库bundle库实现文件压缩bundle库实现文件解压缩httplib库httplib库搭建简单服务器h... 查看详情

springcloudalibaba(一):概述与重要组件

...自身的微服务实践开源的一套微服务全家桶,在SpringCloud项目中进行孵化并且毕业。既然是SpringCloud的项目那么阿里云其实包含其商业化的产品。例如Nacos在阿里云就有其商业化的版本MSE。同时SpringCloudAlibaba的相关组件是经历过双... 查看详情

云备份项目(代码片段)

云备份项目文章目录云备份项目云备份的认识项目实现目标模块划分第三方库认识JSON认识bundle文件压缩库httplib库httplib库搭建服务器httplib库搭建客户端项目实现云备份服务端实现数据管理模块文件操作工具类Json操作工具类文件... 查看详情

eventbridge集成云服务实践

作者:李凯(凯易)EvenBridge集成概述EventBridge是阿里云所推出了一款无服务器事件总线,其目标是拓展事件生态,打破系统间的数据孤岛,建立事件集成生态。提供统一的事件标准化接入及管理能力,完善集成与被集成通路,帮... 查看详情

微服务项目实践之中建项目

导读:本文介绍了中建项目上云的过程,包括原有业务架构分析、迁移目标制定和迁移方案制定,上云的相关流程和规范。详细说明了上云后的部署形态和微服务优化分析。1.中建项目简介:  中建项目全程是“用友建筑分公... 查看详情

[项目管理-1]:软硬件项目管理-总体概述框架实践活动常见工具软件研发过程软件开发周期模型

...dn.net/HiWangWenBing/article/details/126427623目录前言:第1章 项目管理是企业经营的一部分1.1 项目是组织战略的一部分1.2项目是组织的一种经营活动1. 查看详情

细数华为云云原生产品及五大开源实践

摘要:华为云已向CNCF贡献多个首创开源项目,包括云原生边缘计算平台项目KubeEdge,云原生批量计算项目Volcano,云原生多云容器编排项目Karmada,今年,华为云又开源了两个云原生领域的项目Kurator和Kappital&... 查看详情

细数华为云云原生产品及五大开源实践

摘要:华为云已向CNCF贡献多个首创开源项目,包括云原生边缘计算平台项目KubeEdge,云原生批量计算项目Volcano,云原生多云容器编排项目Karmada,今年,华为云又开源了两个云原生领域的项目Kurator和Kappital&... 查看详情

8000字讲透obsa原理与应用实践(代码片段)

摘要:OBSA项目是围绕OBS建立的大数据和AI生态,其在不断的发展和完善中,目前有如下子项目:hadoop-obs项目和flink-obs项目。文章作者:存储服务产品部开发者支持团队OBS存储服务概述华为云OBS存储服务提供了... 查看详情

项目云备份项目简介

项目简介:搭建云备份服务器客户端,实现客户端针对指定目录文件自动备份到云端,服务器端会对上传的文件热点判断,非热点压缩存储到磁盘。通过浏览器可以查看与下载(支持断点续传)。概要设计... 查看详情

春季云配置最佳实践?

...布时间】:2017-04-2303:48:10【问题描述】:例如基于spring的项目,有eurekaconfig(eureka.properties)、zuulconfig(zuul.properties)、feignconfig(feign.properties)等。还有多个环境,例如开发、测试、登台,例如application-de 查看详情

saas化开源项目之housekeeper云上部署实践(代码片段)

...作者:华为云DTSE。HouseKeeper是华为云开发者团队基于SaaS项目技术支持实践,采用微服务架构(SpringCloud),结合华为云服务能力开发的SaaS化开源项目,旨在为企业级开发者提供云原生SaaS应用构建的技术参考,包括微服务架构、... 查看详情

云计算之openstack基础服务之一keystone服务最佳实践

1.openstack简介Openstack是一个项目,该项目支持所有类型的云环境的一个开源云计算平台,该项目的目的是为了实现简单,大规模可扩展性,以及丰富功能集,来自世界各地的云计算专家项目作出贡献。Openstack提供了一个基础架构... 查看详情