【云备份|| 日志 day1】项目认识 && 环境准备

简介: 【云备份|| 日志 day1】项目认识 && 环境准备

day1

项目总纲

云备份

实现目标

搭建环境

词汇解释

项目总纲

云备份

自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间

实现目标

这个云备份项目需要我们实现两端程序,其中包括部署在用户机的客户端程序,上传需要备份的文件,以及运行在服务器上的服务端程序,实现备份文件的存储和管理,两端合作实现总体的自动云备份功能。

1. 服务端程序负责功能

针对客户端上传的文件进行备份存储

能够对文件进行热点文件管理,对非热点文件进行压缩存储,节省磁盘空间。

支持客户端浏览器查看访问文件列表。

支持客户端浏览器下载文件,并且下载支持断点续传。

2. 服务端功能模块划分

数据管理模块:负责服务器上备份文件的信息管理。

网络通信模块:搭建网络通信服务器,实现与客户端通信。

业务处理模块:针对客户端的各个请求进行对应业务处理并响应结果。

热点管理模块:负责文件的热点判断,以及非热点文件的压缩存储。

3. 客户端程序负责功能

能够自动检测客户机指定文件夹中的文件,并判断是否需要备份

将需要备份的文件逐个上传到服务器

4. 客户端功能模块划分

数据管理模块:负责客户端备份的文件信息管理,通过这些数据可以确定一个文件是否需要备份。

文件检测模块:遍历获取指定文件夹中所有文件路径名称。

网络通信模块:搭建网络通信客户端,实现将文件数据备份上传到服务器

搭建环境

gcc升级7.3版本:

sudo yum install centos-release-scl-rh centos-release-scl//  安装语言信息
sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++  //安装高版本的gcc
source /opt/rh/devtoolset-7/enable   //加载配置文件
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc   //修改默认配置文件

查看gcc版本 :gcc -v

安装jsoncpp库:

sudo yum install epel-release
sudo yum install jsoncpp-devel

查看json的下载路径:ls /usr/include/jsoncpp/json/

下载bundle数据压缩库

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

下载 httplib 库

git clone https://github.com/yhirose/cpp-httplib.git

如果无法在shell访问github,我们可以去GitHub官网上下载这两个第三方库,下载至本地后,通过rz命令上传到服务器上。

词汇解释

断点续传功能

断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载。

相当于你下一个大型游戏,下到一半没有流量了,可以回家连上wife之后从当前进度继续下载。

热点管理

在这里的解释就是,对一些经常被访问的文件进行处理,以便更好的进行访问,不常访问的文件进行压缩处理。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1403 0
|
12月前
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
2161 16
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
4405 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
3248 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
427 1
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
1752 3
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
936 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
存储 Go 索引
go语言并发实战——日志收集系统(一) 项目前言
go语言并发实战——日志收集系统(一) 项目前言
214 1
go语言并发实战——日志收集系统(一) 项目前言
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
262 1