【c++实战项目】——云备份服务器

news2024/11/18 14:01:44

 项目介绍

  • 云备份服务器能够通过浏览器将文件上传到服务器上
  • 并且随时可以通过浏览器进行查看并且下载,其中下载的过程支持断点续传
  • 服务器上有热点管理模块,将非热点文件进行压缩存储,节省服务器的磁盘空间

 服务器各个模块的功能介绍

配置文件管理模块

  • 管理配置文件,当服务器启动的时候,将配置文件中配置的信息加载到服务器中,包括热点的时间,压缩文件的后缀,服务器的端口号等等.

文件信息管理模块

  • 管理上传的文件的信息,当服务器启动的时候,将备份文件信息加载到服务器上。
  • 备份文件信息备份目录和压缩目录下的的文件信息,文件信息包括文件的备份路径,压缩路径,压缩标志,文件的大小,url等等

热点管理模块

  • 不断轮询查看备份目录下的文件,如果备份目录下有文件是非热点文件,则对该文件进行压缩,并将将压缩文件放在压缩目录下,并删除备份目录下的文件,再将文件信息中的压缩标志设置为true,表示该文件已经被压缩。

 通信管理模块

1.. 当浏览器发送一个get /listshow/ http/1.1请求时,服务器会給浏览器一个html页面,用户可以在这个页面上下载想要的文件,或者上传文件到服务器上.

2. 当客户端发送一个 get /download/文件名 http1.1的请求給服务器时,表示时下载文件。

  • 首先服务器会去文件信息管理模块中查找该文件是否存在
  • 如果存在,则需要判断该文件是否被压缩,如果没有被压缩则直接将备份目录下的文件发送給浏览器
  • 如果该文件被压缩,则将压缩目录下的压缩文件解压缩放到备份目录,删除压缩文件,将文件信息的压缩标志设置为false,表示该文件没有被压缩。
  • 在下载过程中,如果因为某种原因导致下载中断,则重新下载则会从上次中断的位置开始下载,不会重新下载该文件。

文件下载过程:

3.当客户端发送一个 post /updown http/1.1的请求时,表示上传文件給服务器,文件名和文件内容存放在http请求中的正文中。服务器收到该请求后,读取http请求中的文件名和文件数据,在备份目录下创建一个新的文件,并将该文件的数据放在这个新的文件中,添加新的文件信息到文件信息管理系统。

 上传功能:

上传文件后,热点时间过后,则上传的文件会从backdir中压缩到packdir下面。

 项目设计

  • 环境搭建
  • httplib库的使用
  • bundle库的使用
  • jsoncpp库的使用和json字符串的概念
  • 配置文件模块的设计
  • 文件信息管理模块的设计
  • 热点模块的设计
  • 通信管理模块设计

github链接: https://github.com/sjp1237/cloudserver

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门学习需要知道的100个小技巧,加了几个小时班终于整理出来了

Python新手需要知道的100个小技巧序言最后序言 哈喽兄弟们,今天给大家分享一下Python初学需要知道的100个小技巧~ 1、for循环中的else条件 这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包…

DNSPod十问陈迪菲:从C到B,鹅厂设计师的中场战事

陈迪菲,腾讯云设计中心总经理,公司设计通道副会长,设计技术委员会委员,腾讯学院优秀讲师,曾于2019年获得新中国成立70周年中国用户体验设计70人提名奖。2010年加入腾讯,10年设计团队项目管理经验&#xff0…

C++手机运动信息管理系统

C手机运动信息管理系统 《程序设计基本能力综合实训》 实训案例名称:手机运动信息管理系统 -----说明文档 本案例主要完成手机运动信息的管理。主要功能包括:用户信息的管理、运动信息的管理、查看运动排行榜、定制运动路线、数据文件操作和退出。 如图 1-1 所示。 图1-1 …

web前端期末大作业 :HTML+CSS+JavaScript+Bootstrap实现响应式网站潮酷音乐网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

初始C语言2【函数 、数组、操作符、关键字、#define 定义常量和宏、指针、结构体】

目录 八、函数 九、数组 1、数组的定义:一组相同类型元素的集合 2、数组的下标 数组的每个元素都有一个下标,下标是从0开始的。 数组可以通过下标来访问元素。 3、数组的使用 十、操作符 1.常见操作符: 举例: 1&#xff…

与图相关的一些矩阵

目录前言正文邻接矩阵(Adjacency matrix)度矩阵(Degree matrix)关联矩阵(Incidence matrix)拉普拉斯矩阵常规拉普拉斯矩阵拉普拉斯矩阵标准化前言 以无向图为例,介绍与图相关的各种矩阵。我们定义下面的图为 GGG: import networkx as nx import matplo…

CSS之背景样式及边框样式

1、背景样式 常用属性: background-color:背景颜色background-image:背景图片background-repeat:背景图片的平铺方式background-position:背景图片的位置background-attachment:背景图随滚动条的移动方式 …

ADI Blackfin DSP处理器-BF533的开发详解19:LAN的网口设计(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 BF533说实话用来做LAN的应用有些许勉强,因为他自己不带网口,要做的话,需要在总线上挂,那…

3D视觉PnP问题

文章目录背景和定义方法分类典型方法P3P(角锥法)DLT单应性矩阵分解迭代法EPnP其他延伸总结背景和定义 目前常用的pnp方法有很多,但是本人学习和查阅后发现比较零散,因此,在这里将所学习的方法按照理解分类和总结,并且…

体验了一下火爆全球的 ChatGPT,我惊呆了

这几天,要说编程圈最热的话题,莫过于OpenAI的ChatGPT,写小说,写代码,找BUG,写论文,画漫画,谱曲……简直没有它干不了的事。 趁着下班时间,我也光速注册体验了一下&#…

深度整理总结MySQL——事务专辑

事务前言什么是事务事务的特性事务的状态事务会引发什么问题?解决事物引发的问题手段事务日志Undo Log 日志简单介绍具体实现Buffer PoolBuffer Pool缓存什么?Redo Log日志为什么需要Redo Log?什么是 redo log?redo log要写入磁盘&#xff0…

保姆级教程:手把手教你使用 Keras 搭建神经网络

大家好,本文从0到1详细讲解两种基于Keras的建模方法: 基于Sequential的建模;快速方便,易上手 基于函数式API的建模;易于扩展,灵活性强 文章目录你会学到什么?技术提升导入内置数据集数据缩放和…

【GRU回归预测】基于卷积神经网络结合门控循环单元CNN-GRU实现数据多维输入单输出预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

ChatGPT强悍的编程能力,让我吓出一身冷汗!

最近有好几个人给我安利ChatGPT,说老刘快你去看看吧,这货实在太强了,搞不好我们程序员都失业了。刚开始我都是微微一笑,怎么可能?我之前的观点一直都是在我的有生之年,AI绝对不可能干掉程序员。但是安利的人…

一篇文章让你懂 io流

文件:就是保存数据的地方。文件流:文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径。输入流:数据从文件(磁盘)到Java程…

Spring-Cloud-Admin-06

前言 admin是用来监控各个服务的状况的,通过前台页面,可以查看我们各个服务的一个状态,是否在线,服务状况的一个框架。 服务端项目使用 admin有服务端和客户端,我们不需要每个服务都导入admin的客户端依赖,…

以太网 网络高可用性(链路聚合、LACP模式、静态手动模式)

2.9.0 以太网 网络高可用性(链路聚合、LACP模式、静态手动模式) 网络高可用性2.9.0 以太网 网络高可用性(链路聚合、LACP模式、静态手动模式)一、简介:1、单板可靠性:1.1、实现机柜式的可靠性提升&#xff…

Java#35(多线程扩展)

目录 一.定时器 定时器是一种控制任务延时调用, 或者周期调用的技术 1.Timer定时器(不推荐) 2.ScheduledExecutorService定时器(推荐) 二.并发与并行 三.线程状态 一.定时器 定时器是一种控制任务延时调用, 或者周期调用的技术 1.Timer定时器(不推荐) 代码示范: import …

Microsoft Store无法打开的解决办法【成功解决】

Microsoft Store无法打开解决办法我自己的解决办法其他Bug导致Microsoft Store无法打开的解决办法vpn代理问题使用TLS 1.2其他BUG解决方案成功解决之前我就有安装wsl的想法,但是他要求打开Microsoft Store,我尝试了各种办法,都不行。今天终于…

SpringCloud-全面详解(学习总结---从入门到深化)

​​​​​​​ 微服务架构进化论 单体应用阶段 (夫妻摊位) 在互联网发展的初期,用户数量少,一般网站的流量也很少,但硬 件成本较高。因此,一般的企业会将所有的功能都集成在一起开发 一个单体应用,然后将该单体应用…