go-platform/docs/DEPLOYMENT_CHECKLIST.md
2026-04-09 16:26:38 +08:00

6.9 KiB
Raw Permalink Blame History

存储功能部署检查清单

部署前准备

1. 环境检查

  • Go 1.17+ 已安装
  • MySQL 5.7+ 已安装并运行
  • Node.js 14+ 已安装(前端)
  • 网络连接正常

2. 依赖安装

# 后端依赖
cd go
go mod download
go mod tidy

# 前端依赖(如需要)
cd platform
npm install

3. 数据库迁移

# 备份数据库
mysqldump -u root -p your_database > backup_$(date +%Y%m%d).sql

# 执行迁移
mysql -u root -p your_database < go/migrations/add_storage_config_table.sql

# 验证表创建
mysql -u root -p your_database -e "SHOW TABLES LIKE 'yz_system_storage_config';"
mysql -u root -p your_database -e "DESC yz_system_storage_config;"

部署步骤

1. 后端部署

cd go

# 编译
go build -o server main.go

# 或使用bee工具
bee run

2. 前端部署

cd platform

# 开发环境
npm run dev

# 生产环境
npm run build

3. 配置验证

访问:http://localhost:8080/platform/storageConfig

预期响应:

{
  "code": 200,
  "msg": "success",
  "data": {
    "storage_type": "local",
    ...
  }
}

功能测试

1. 存储配置测试

测试本地存储

  1. 登录平台管理后台
  2. 进入:系统设置 → 平台设置 → 存储配置
  3. 选择"本地存储"
  4. 点击"保存设置"
  5. 验证保存成功

测试七牛云存储

  1. 准备七牛云账号和配置信息
  2. 选择"七牛云存储"
  3. 填写配置:
    • AccessKey: your_access_key
    • SecretKey: your_secret_key
    • Bucket: your_bucket
    • CDN域名: https://cdn.example.com
    • 存储区域: z0
  4. 点击"保存设置"
  5. 验证保存成功

2. 文件上传测试

本地存储上传

  1. 配置为本地存储
  2. 上传测试文件
  3. 检查文件是否保存到 uploads/ 目录
  4. 验证文件URL格式/uploads/2024/01/01/xxx.jpg
  5. 访问文件URL确认可以访问

七牛云上传

  1. 配置为七牛云存储
  2. 上传测试文件
  3. 检查数据库记录
  4. 验证文件URL格式https://cdn.example.com/2024/01/01/xxx.jpg
  5. 访问文件URL确认可以访问

3. 文件迁移测试

  1. 准备一些本地存储的文件
  2. 配置七牛云存储
  3. 调用迁移API
    curl -X POST http://localhost:8080/platform/storage/migrateToQiniu
    
  4. 检查迁移进度和结果
  5. 验证文件URL已更新
  6. 访问新URL确认文件可访问

性能测试

1. 上传性能

# 测试单文件上传
time curl -F "file=@test.jpg" http://localhost:8080/platform/uploadfile

# 测试批量上传
for i in {1..10}; do
  curl -F "file=@test$i.jpg" http://localhost:8080/platform/uploadfile &
done
wait

2. 迁移性能

  • 准备100个测试文件
  • 执行迁移
  • 记录总耗时
  • 计算平均速度

监控检查

1. 日志检查

# 查看服务日志
tail -f logs/server.log

# 查看错误日志
grep ERROR logs/server.log

# 查看上传日志
grep "文件上传" logs/server.log

2. 数据库检查

-- 检查存储配置
SELECT * FROM yz_system_storage_config;

-- 检查文件记录
SELECT COUNT(*) FROM yz_system_files;

-- 检查最近上传的文件
SELECT * FROM yz_system_files ORDER BY create_time DESC LIMIT 10;

3. 存储空间检查

# 本地存储空间
du -sh uploads/

# 七牛云存储空间(在七牛云控制台查看)

安全检查

1. 配置安全

  • SecretKey 不在日志中输出
  • 配置文件权限正确600
  • 数据库连接使用强密码
  • API接口有认证保护

2. 文件安全

  • 文件大小限制生效200MB
  • 文件类型验证正常
  • 恶意文件上传被拦截
  • 文件访问权限正确

3. 网络安全

  • HTTPS配置正确
  • CDN域名已备案
  • 防火墙规则正确
  • 跨域配置正确

回滚计划

如果部署失败

  1. 停止服务

    pkill -f server
    
  2. 恢复数据库

    mysql -u root -p your_database < backup_YYYYMMDD.sql
    
  3. 恢复代码

    git checkout previous_version
    
  4. 重启服务

    cd go
    bee run
    

常见问题

问题1: 依赖安装失败

解决方法:

# 清理缓存
go clean -modcache

# 使用代理
export GOPROXY=https://goproxy.cn,direct

# 重新安装
go mod download

问题2: 数据库迁移失败

解决方法:

# 检查表是否已存在
mysql -u root -p your_database -e "SHOW TABLES LIKE 'yz_system_storage_config';"

# 如果存在,先删除
mysql -u root -p your_database -e "DROP TABLE IF EXISTS yz_system_storage_config;"

# 重新执行迁移
mysql -u root -p your_database < go/migrations/add_storage_config_table.sql

问题3: 七牛云上传失败

检查项:

  • AccessKey 和 SecretKey 是否正确
  • Bucket 是否存在
  • 存储区域是否匹配
  • 网络连接是否正常

测试连接:

curl -I https://your-cdn-domain.com

问题4: 文件访问404

本地存储:

# 检查文件是否存在
ls -la uploads/2024/01/01/

# 检查Nginx配置
nginx -t

# 检查文件权限
chmod 644 uploads/2024/01/01/*

七牛云:

  • 检查CDN域名是否正确
  • 检查文件是否上传成功
  • 检查空间访问权限

部署完成确认

功能确认

  • 存储配置页面正常显示
  • 本地存储配置保存成功
  • 七牛云配置保存成功
  • 本地存储上传正常
  • 七牛云上传正常
  • 文件访问正常
  • 文件迁移功能正常
  • 错误处理正常
  • 日志记录正常

性能确认

  • 上传速度正常(< 5秒/10MB
  • 访问速度正常(< 1秒
  • 迁移速度正常(> 10文件/秒)
  • 内存使用正常(< 500MB
  • CPU使用正常< 50%

安全确认

  • 认证保护生效
  • 文件大小限制生效
  • 文件类型验证生效
  • 敏感信息不泄露
  • 日志不包含密钥

上线通知

通知内容

【系统升级通知】

尊敬的用户:

系统已完成存储功能升级,新增以下功能:

1. 支持七牛云存储
2. 支持存储配置管理
3. 支持文件迁移功能

升级后的优势:
- 更快的访问速度CDN加速
- 更高的可靠性(云端备份)
- 更低的成本(按需付费)

如有问题,请联系技术支持。

感谢您的支持!

后续优化

短期优化1周内

  • 添加上传进度显示
  • 添加批量上传功能
  • 优化错误提示
  • 添加使用统计

中期优化1个月内

  • 添加图片压缩
  • 添加缩略图生成
  • 添加水印功能
  • 添加访问统计

长期优化3个月内

  • 支持更多存储服务
  • 添加文件管理界面
  • 添加自动备份
  • 添加CDN配置

部署完成后,请在此签名确认:

  • 部署人员__________
  • 部署时间__________
  • 测试人员__________
  • 测试时间__________
  • 审核人员__________
  • 审核时间__________