go-platform/docs/立即执行-重启服务.md

4.1 KiB
Raw Blame History

立即执行:重启服务

修复内容

已修复日志错误(beego.Infofmt.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. 测试上传

  1. 打开浏览器,登录系统
  2. 进入:平台管理 → 软件升级
  3. 点击"新增"或"编辑"
  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: 请求体仍然为空

检查:

  1. 确认服务已重启
  2. 查看日志中是否有 "请求体长度: 0"
  3. 检查前端请求的 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 可以访问

下一步

上传成功后,可以:

  1. 移除调试日志(fmt.Println
  2. 测试大文件上传
  3. 测试批量上传
  4. 验证文件去重功能

联系支持

如果问题仍然存在,请提供:

  1. 服务状态输出
  2. 完整的错误日志
  3. 浏览器控制台截图
  4. 请求和响应的详细信息

更新时间

2026-04-09