# 存储功能部署检查清单 ## 部署前准备 ### 1. 环境检查 - [ ] Go 1.17+ 已安装 - [ ] MySQL 5.7+ 已安装并运行 - [ ] Node.js 14+ 已安装(前端) - [ ] 网络连接正常 ### 2. 依赖安装 ```bash # 后端依赖 cd go go mod download go mod tidy # 前端依赖(如需要) cd platform npm install ``` ### 3. 数据库迁移 ```bash # 备份数据库 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. 后端部署 ```bash cd go # 编译 go build -o server main.go # 或使用bee工具 bee run ``` ### 2. 前端部署 ```bash cd platform # 开发环境 npm run dev # 生产环境 npm run build ``` ### 3. 配置验证 访问:http://localhost:8080/platform/storageConfig 预期响应: ```json { "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: ```bash curl -X POST http://localhost:8080/platform/storage/migrateToQiniu ``` 4. 检查迁移进度和结果 5. 验证文件URL已更新 6. 访问新URL,确认文件可访问 ## 性能测试 ### 1. 上传性能 ```bash # 测试单文件上传 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. 日志检查 ```bash # 查看服务日志 tail -f logs/server.log # 查看错误日志 grep ERROR logs/server.log # 查看上传日志 grep "文件上传" logs/server.log ``` ### 2. 数据库检查 ```sql -- 检查存储配置 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. 存储空间检查 ```bash # 本地存储空间 du -sh uploads/ # 七牛云存储空间(在七牛云控制台查看) ``` ## 安全检查 ### 1. 配置安全 - [ ] SecretKey 不在日志中输出 - [ ] 配置文件权限正确(600) - [ ] 数据库连接使用强密码 - [ ] API接口有认证保护 ### 2. 文件安全 - [ ] 文件大小限制生效(200MB) - [ ] 文件类型验证正常 - [ ] 恶意文件上传被拦截 - [ ] 文件访问权限正确 ### 3. 网络安全 - [ ] HTTPS配置正确 - [ ] CDN域名已备案 - [ ] 防火墙规则正确 - [ ] 跨域配置正确 ## 回滚计划 ### 如果部署失败 1. 停止服务 ```bash pkill -f server ``` 2. 恢复数据库 ```bash mysql -u root -p your_database < backup_YYYYMMDD.sql ``` 3. 恢复代码 ```bash git checkout previous_version ``` 4. 重启服务 ```bash cd go bee run ``` ## 常见问题 ### 问题1: 依赖安装失败 **解决方法:** ```bash # 清理缓存 go clean -modcache # 使用代理 export GOPROXY=https://goproxy.cn,direct # 重新安装 go mod download ``` ### 问题2: 数据库迁移失败 **解决方法:** ```bash # 检查表是否已存在 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 是否存在 - 存储区域是否匹配 - 网络连接是否正常 **测试连接:** ```bash curl -I https://your-cdn-domain.com ``` ### 问题4: 文件访问404 **本地存储:** ```bash # 检查文件是否存在 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配置 --- **部署完成后,请在此签名确认:** - 部署人员:__________ - 部署时间:__________ - 测试人员:__________ - 测试时间:__________ - 审核人员:__________ - 审核时间:__________