393 lines
6.9 KiB
Markdown
393 lines
6.9 KiB
Markdown
# 存储功能部署检查清单
|
||
|
||
## 部署前准备
|
||
|
||
### 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配置
|
||
|
||
---
|
||
|
||
**部署完成后,请在此签名确认:**
|
||
|
||
- 部署人员:__________
|
||
- 部署时间:__________
|
||
- 测试人员:__________
|
||
- 测试时间:__________
|
||
- 审核人员:__________
|
||
- 审核时间:__________
|