4.1 KiB
4.1 KiB
立即执行:重启服务
修复内容
✅ 已修复日志错误(beego.Info → fmt.Println)
✅ 已启用 CopyRequestBody 配置
✅ 已添加调试输出
立即执行
1. 重启服务
systemctl restart go-api
2. 检查服务状态
systemctl status go-api
预期输出:
● go-api.service - Go API Server
Active: active (running)
如果显示 failed,查看错误:
journalctl -u go-api -n 50
3. 查看实时日志
tail -f /www/wwwroot/api.yunzer.cn/go.log
或者查看标准输出(调试日志会输出到这里):
journalctl -u go-api -f
4. 测试上传
- 打开浏览器,登录系统
- 进入:平台管理 → 软件升级
- 点击"新增"或"编辑"
- 上传一个文件(建议先用小文件测试)
5. 观察日志
在终端中应该看到:
SaveFileRecord 请求体长度: 150
SaveFileRecord 请求体内容: {"key":"2026/04/09/1775732976777726699.exe","hash":"loozoz7qv9flWXsS5UldWdPX9-T_","size":60742452,"name":"xxx.exe","mimeType":"application/x-msdownload","cate":0}
6. 验证结果
前端应该显示:
- 上传进度条
- 上传成功提示
- 文件 URL:
http://7colud.yunzer.cn/2026/04/09/xxxxx.exe
数据库验证:
mysql -u go-platform -p -h 212.64.112.158 -P 3388 go-platform
SELECT id, name, src, size, type, create_time
FROM system_file
ORDER BY id DESC
LIMIT 5;
完整上传流程
用户选择文件
↓
前端获取存储配置
storageType: 'qiniu'
↓
前端获取上传凭证
token, region: 'z2'
↓
前端直接上传到七牛云
POST https://upload-z2.qiniup.com
✓ 成功返回: {key, hash, size}
↓
前端保存文件记录
POST /platform/qiniu/save
Body: {key, hash, size, name, mimeType, cate}
↓
后端接收请求
✓ CopyRequestBody 已启用
✓ 请求体不为空
↓
后端保存到数据库
INSERT INTO system_file
↓
返回文件信息
{url, id, name, key}
↓
前端显示上传成功
如果还是失败
问题 1: 服务启动失败
检查:
journalctl -u go-api -n 50
常见原因:
- 端口被占用
- 数据库连接失败
- 配置文件错误
问题 2: 请求体仍然为空
检查:
- 确认服务已重启
- 查看日志中是否有 "请求体长度: 0"
- 检查前端请求的 Content-Type 是否为
application/json
解决:
# 确保配置生效
grep -i "copyrequestbody" /www/wwwroot/api.yunzer.cn/conf/app.conf
# 应该看到
copyrequestbody = true
问题 3: 七牛云上传失败
检查:
- 浏览器控制台是否有 CORS 错误
- 七牛云 bucket 是否存在
- 区域配置是否正确(z2)
解决:
参见 platform/docs/七牛云上传测试步骤.md
调试技巧
1. 查看完整请求
浏览器开发者工具 → Network 标签 → 找到 /platform/qiniu/save 请求:
- Headers: 查看 Content-Type
- Payload: 查看请求体内容
- Response: 查看响应内容
2. 查看后端日志
# 实时日志
tail -f /www/wwwroot/api.yunzer.cn/go.log
# 或者查看 systemd 日志(包含 fmt.Println 输出)
journalctl -u go-api -f
3. 测试 API
使用 curl 测试:
# 获取 token(先登录)
TOKEN="your_token_here"
# 测试保存接口
curl -X POST https://api.yunzer.cn/platform/qiniu/save \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "test/test.txt",
"hash": "test123",
"size": 1024,
"name": "test.txt",
"mimeType": "text/plain",
"cate": 0
}'
成功标志
✓ 服务启动成功 ✓ 日志中看到请求体内容 ✓ 前端显示上传成功 ✓ 数据库有新记录 ✓ 文件 URL 可以访问
下一步
上传成功后,可以:
- 移除调试日志(
fmt.Println) - 测试大文件上传
- 测试批量上传
- 验证文件去重功能
联系支持
如果问题仍然存在,请提供:
- 服务状态输出
- 完整的错误日志
- 浏览器控制台截图
- 请求和响应的详细信息
更新时间
2026-04-09