项目日记 -云备份 -项目认识与环境搭建

博客主页:【夜泉_ly

本文专栏:【项目日记-云备份

欢迎点赞👍收藏⭐关注❤️

目录

背景

本来准备下个月MySQL学的差不多了再开项目的,

结果因为种种原因,

不得不提前做一个项目。

但我MySQL没学多少,怎么办呢?

那就做个用不到MySQL的项目!

这就是今天给大家介绍的,云备份。

有C++基础、Linux系统编程、网络编程基础就能做。

项目认识

这个项目的作用,非常简单,

就是把指定文件夹中的本地文件备份到服务器上,

并且可以做到:

通过浏览器进行文件查看与下载

下载时支持断点续传

而服务器则可以把很久没用的文件压缩,

节省空间。(热文件管理

具体怎么实现呢?

先把大致的功能列出来,
服务端功能:

  1. 支持客户端文件上传
  2. 支持客户端查看已备份文件
  3. 支持客户端下载备份文件
  4. 压缩长期无访问的文件

客户端功能:

  1. 判断指定文件夹中的文件是否需要备份
  2. 逐个上传需要备份的文件

那么,上传文件下载文件等等,

都涉及网络数据传输吧?

那么你得对数据序列化和反序列化吧?

你也得支持HTTP协议吧?

另外,对于热文件的管理,

你也得有文件压缩和管理的程序吧?

这些都要手写吗?当然不,

这些我们都用第三方库。

是否可以自己实现这些功能?

为什么不自己实现?

首先,从技术上讲,当然可以自己实现。

比如我们可以手搓 json 解析器,

或者自主实现 HTTP(这个说不定还真可以)。

但是,对于目前的项目而言,

没有必要。

这些第三方库都是大佬们写的,

而且已经做了大量优化,

我们专注自己项目的核心功能就行,

底层,嗯,可以去看看源码,了解它的内部实现,

手搓就免了。

环境搭建

那么接下来,我们开始搭环境吧。

现在我已经有的:

  • Ubuntu 22.04.4
  • g++ 11.4.0
  • vscode

还差三个第三方库:jsoncpp、httplib、bundle(一个数据压缩库)

安装 jsoncpp

先更新包列表:

复制代码
sudo apt update

然后安装:

复制代码
sudo apt install libjsoncpp-dev

如果出现这个界面:

这个界面显示的是在Ubuntu中安装或更新某个软件包时,

系统提示你某些服务使用了过时的库,

需要重新启动。

这种操作一般是安全的,

重启服务有助于确保更新的库生效。

然后,具体如何操作呢?
上下箭头键 选服务
空格键 确认/取消 选中服务
Tab键 把光标移动到 <Ok>
回车键 确认

dpkg -l | grep libjsoncpp 检查是否安装成功。

复制代码
root@hcss-ecs-0f5a:/# dpkg -l | grep libjsoncpp
ii  libjsoncpp-dev:amd64                   1.9.5-3                                 amd64        library for reading and writing JSON for C++ (devel files)
ii  libjsoncpp25:amd64                     1.9.5-3                                 amd64        library for reading and writing JSON for C++

如果想要 卸载 jsoncpp:

卸载 libjsoncpp-dev 包:

复制代码
sudo apt remove libjsoncpp-dev

完全卸载,包括配置文件:

复制代码
sudo apt purge libjsoncpp-dev

清除不用的依赖包:

复制代码
sudo apt autoremove

同样,用 dpkg -l | grep libjsoncpp 检查,

如果没有输出,

说明 jsoncpp 已经被成功卸载。

下载 httplib

直接 git clone 就行:

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

github。。可能有点慢。

不行的话就直接用浏览器:cpp-httplib

下载 bundle

同上:

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

bundle


希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!

本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!

相关推荐
TANGLONG22228 分钟前
【C++】STL全面简介与string类的使用(万字解析)
java·c语言·开发语言·c++·python·面试·蓝桥杯
hxdcxy1 小时前
搭建harbor仓库
linux·运维·服务器
时光旅人01号1 小时前
Ubuntu 常用指令手册
linux·运维·服务器·深度学习·神经网络·ubuntu
狼头长啸李树身1 小时前
机器人交社保属于“无稽之谈”?
网络·机器人·媒体
InnovatorX2 小时前
Linux 下 MySQL 8 搭建教程
linux·mysql·adb
xcyxiner2 小时前
snmp v1 get请求优化(上)
c++
Ethon_王2 小时前
C++模板:基础解析
c++
程序猿本员2 小时前
Linux进程间通信(1)-管道、内存映射
linux·后端
手拿菜刀2 小时前
c++学习系列----002.写文件
开发语言·c++·学习
zym大哥大2 小时前
C++之stack_queue扩展
java·前端·c++