Skip to content

leven-comeon/backup-system

 
 

Repository files navigation

项目总结

github

https://github.com/SunAndMoon-uestc/backup

编译环境

  • cmake version 3.16.3;
  • GNU Make 4.2.1
  • g++ 9.4.0
  • OpenSSL 1.1
  • openjdk version 1.8.0_342
  • Apache Maven 3.8.6

项目编译

  • sh compile.sh

启用

  • sh run.sh

使用

  • 使用ip addr 获取当前ip
  • 使用浏览器打开 ip:9090 访问界面端
  • 在界面端输入的路径必须为绝对路径

项目开发记录

算法端

开发环境

  • 操作系统

    • Distributor ID: Ubuntu
    • Description: Ubuntu 20.04 LTS
    • Release: 20.04
    • Codename: focal

目前已实现功能 107

  • 基础功能:备份、恢复、检查合法性 40
  • 打包解包 10
  • 元数据支持 10
  • 特殊文件支持 10
  • 压缩解压 10
  • 加密解密 7
  • Web界面 10
  • 网盘备份 10

版本控制(git)

  • 指令集

    • git push (建立项目并上传)
    • git pull origin master 下拉
  • start 建立项目

    • start-0x 建立项目,完成基础功能
    • start-1.x 基础功能实现
    • start-2.x
      • start-2.1 实现加密解密,加密文件后缀为.cpt的二进制文件
      • start-2.2 修正加密密码有关问题
      • start-2.3 修正backup目录的创建问题
      • start-2.4 支持管道、软链接
      • start-2.5 支持硬链接
      • start-2.6 支持压缩
      • start-2.7 定位加密错误,除去加密;添加可选参数
      • start-2.8 软链接复制优化;错误处理
      • start-2.9 使用openssl进行加密
      • start-2.10 生成支持前端的动态链接库(so)
      • start-2.11 解决文件夹属性更改错误;调整错误返回
      • start-2.12 定位备份错误文件,将错误文件记录在txt中
      • start-2.13 修改检查功能问题
    • start-3x
      • start-3.0 前端测试
      • start-3.5 恢复功能错误修正(空行)

程序使用

  • mkdir build
  • cd build
  • cmake ..
  • make
  • cd ..
  • ./build/code/backup [path] [0 / 1 / 2] [0/1/2] [key]
    • 注意必须使用绝对路径
    • 0 backup ; 1 recover; 2 check
    • 0 基本功能; 1 基本功能 + 压缩 ; 2 基本功能+压缩+加密
    • 密码长度任意,但有效长度为16位

backup-system-web

版本

- v1 环境准备

  • v1.0 创建网站项目
  • v1.1 添加动态链接库.so文件,添加相关依赖
  • v1.2 创建调用.so文件的java库
  • v1.3 改用使用新进程调用算法库的方式

- v2 网站前端

  • v2.1 导入前端模板
  • v2.2 修改相关配置
  • v2.3 调整前端板式
  • v2.4 完成界面设计
  • v2.5 添加校验功能
  • v2.6 结果自动刷新
  • v2.7 添加错误模版
  • v2.8 添加网盘展示

- v3 网站后端

  • v3.1 备份部分基本实现
  • v3.2 恢复和校验部分基本实现
  • v3.3 数据库存储备份方式完成
  • v3.4 实现算法库路径参数化 (失败)
  • v3.5 校验出错定位展示
  • v3.6 解决v3.4中的失败问题
  • v3.7 实现文件路径合法化
  • v3.8 实现错误结果的展示
  • v3.9 解决了文件路径合法性校验遗漏问题,解决了校验时需要密码问题,解决了空路径或空密码问题
  • v3.10 解决了目前已知的bug。
  • v3.11 添加环境配置指南
  • v3.12 添加网站启动脚本,增加网盘传输功能

==================================================

TODO:

  • 调用算法前检查文件路径是否合法,如果最后以“/”结尾,则删去“/” =====解决=====
  • 实现数据库的插入功能 =====解决=====
  • 将错误代码与文字提示绑定 =====解决=====
  • 解决特殊情况:用户选择不需要密码形式,但实际备份文件是加密的,此时现有程序没有检查密码,易导致出错。 =====解决=====
  • 在写入和读取数据库前检查路径合法性,即最后有无“/”结尾,并进行处理 =====解决=====
  • 校验时需要使用密码,需读取数据库来获得 =====解决=====
  • 解决当用户输入文件路径为空或密码为空时报错问题 =====解决=====

执行方法:

一、生成 jar

手动克隆代码库并将网站源码打成 jar 包,或直接下载已打包好的 jar

下载代码并打包
# 下载代码库并进行打包
> git clone https://github.com/Leven0212/backup-system-web.git
> mv backup-system-web-master backup-system-web
> cd backup-system-web
> mvn clean package

待出现 build success 即可,如下图所示: img.png

直接下载已打包好的 jar
> wget https://raw.githubusercontent.com/Leven0212/backup-system/master/backup-system-web-0.0.1-SNAPSHOT.jar

二、配置Java环境和MongoDB环境

Java版本 >= 1.8
MongoDB版本 >= 3.6

# 下载 Java 环境
> sudo apt install openjdk-8-jdk
# 下载 MongoDB 环境
> sudo apt install mongodb
  • 如果要手动执行代码打包,还需配置maven环境
> sudo apt install maven

三、启动MongoDB和web服务

# 启动MongoDB
> service mongodb start
# 启动web服务,其中参数 xxx 处填写算法库根目录
> java -jar backup-system-web-0.0.1-SNAPSHOT --algorithm.home="xxx"
# 启动网盘服务端
> cd server
> java -cp ./target/classes org.example.FileTransferServer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 54.5%
  • C++ 19.6%
  • Java 17.0%
  • HTML 6.0%
  • JavaScript 1.3%
  • Shell 0.8%
  • Other 0.8%