数字档案馆系统保护档案完整性的实操部署落地指南

前置部署环境准备

需准备1台CentOS7.9服务器(内存≥4G、硬盘≥50G),执行以下命令安装依赖工具:

  • 安装Docker:执行 sudo yum install -y docker,启动服务 sudo systemctl start docker,设置开机自启 sudo systemctl enable docker
  • 安装Docker-compose:执行官方指定命令 sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose,授权运行权限 sudo chmod +x /usr/local/bin/docker-compose,验证安装 docker-compose --version(输出版本号即成功)

数字档案馆核心系统部署

创建部署目录并编写完整容器编排配置,实现数据持久化存储(核心步骤,防止档案丢失):

  • 创建目录:执行 sudo mkdir -p /opt/archive/{storage,checksum,mysql,script}
  • 编写docker-compose.yml:用编辑器打开 /opt/archive/docker-compose.yml,粘贴以下完整内容: ``` version: '3.8' services: archive-system: image: archive-system:latest ports: - "8080:8080" volumes: - /opt/archive/storage:/app/storage - /opt/archive/checksum:/app/checksum environment: - DB_HOST=db - DB_USER=archive - DB_PASS=123456 - CHECK_ALGORITHM=SHA256 db: image: mysql:8.0 volumes: - /opt/archive/mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=archive volumes: archive-storage: archive-checksum: ```
  • 启动服务:进入目录 cd /opt/archive,执行启动命令 sudo docker-compose up -d,验证容器状态:执行 sudo docker ps,确保两个服务状态均为healthy

档案完整性保护核心配置

1. 上传时自动生成完整性哈希

修改系统上传配置,实现每一份档案上传时自动计算SHA256哈希并存储,防止篡改:

  • 编辑配置文件:进入archive-system容器内,执行 sudo docker exec -it $(sudo docker ps -qf "name=archive-system") vi /app/config/upload.conf
  • 粘贴完整配置: ``` [UPLOAD] AUTO_CHECK = true CHECK_ALGORITHM = SHA256 CHECKSUM_STORE_PATH = /app/checksum MAX_FILE_SIZE = 10240 ```
  • 重启服务生效:执行 sudo docker-compose restart archive-system

2. 定期自动完整性校验

数字档案馆系统保护档案完整性的实操部署落地指南

配置宿主机定时任务,每日凌晨校验所有档案的完整性,及时发现篡改:

  • 编写校验脚本:在 /opt/archive/script/ 下创建 check_archive.py,粘贴以下完整代码: ``` import hashlib import os STORAGE_PATH = "/opt/archive/storage" CHECKSUM_PATH = "/opt/archive/checksum" def check_file(file_path): file_name = os.path.basename(file_path) checksum_file = os.path.join(CHECKSUM_PATH, f"{file_name}.sha256") if not os.path.exists(checksum_file): print(f"缺失哈希文件:{file_name}") return False with open(checksum_file, 'r') as f: expected_hash = f.read().strip() with open(file_path, 'rb') as f: actual_hash = hashlib.sha256(f.read()).hexdigest() return actual_hash == expected_hash if __name__ == "__main__": all_valid = True for root, _, files in os.walk(STORAGE_PATH): for file in files: if not check_file(os.path.join(root, file)): all_valid = False if all_valid: print("所有档案完整性校验通过") ```
  • 赋予执行权限:执行 sudo chmod +x /opt/archive/script/check_archive.py
  • 配置定时任务:执行 sudo crontab -e,添加一行:0 2 /usr/bin/python3 /opt/archive/script/check_archive.py >> /opt/archive/archive_check.log 2>&1

实操验证流程

1. 正常上传验证

打开浏览器访问 http://服务器IP:8080,用默认账号admin、密码admin123登录,首次登录必须修改密码;上传1个任意文件,上传成功后:

  • 执行 ls /opt/archive/storage 确认文件存在
  • 执行 ls /opt/archive/checksum 确认生成对应.sha256文件
  • 对比两个文件内容,确认哈希值匹配

2. 篡改检测验证

/opt/archive/storage/ 中找到刚才的测试文件,用vi修改文件内容(添加任意字符);执行定时校验命令:sudo /usr/bin/python3 /opt/archive/script/check_archive.py,会输出“档案损坏:xxx”,证明系统可有效检测篡改,保护档案完整。

常见故障排查

  • 容器启动失败:执行 sudo docker logs archive-system 查看错误日志,常见问题为端口占用,修改docker-compose.yml中archive-system的端口映射为未使用端口
  • 定时任务不执行:执行 sudo tail -f /var/log/cron 查看日志,确认脚本路径为绝对路径、文件权限为可执行
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统