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

219 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 立即执行:重启服务
## 修复内容
✅ 已修复日志错误(`beego.Info` → `fmt.Println`
✅ 已启用 `CopyRequestBody` 配置
✅ 已添加调试输出
## 立即执行
### 1. 重启服务
```bash
systemctl restart go-api
```
### 2. 检查服务状态
```bash
systemctl status go-api
```
**预期输出**:
```
● go-api.service - Go API Server
Active: active (running)
```
如果显示 `failed`,查看错误:
```bash
journalctl -u go-api -n 50
```
### 3. 查看实时日志
```bash
tail -f /www/wwwroot/api.yunzer.cn/go.log
```
或者查看标准输出(调试日志会输出到这里):
```bash
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`
**数据库验证**:
```bash
mysql -u go-platform -p -h 212.64.112.158 -P 3388 go-platform
```
```sql
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: 服务启动失败
**检查**:
```bash
journalctl -u go-api -n 50
```
**常见原因**:
- 端口被占用
- 数据库连接失败
- 配置文件错误
### 问题 2: 请求体仍然为空
**检查**:
1. 确认服务已重启
2. 查看日志中是否有 "请求体长度: 0"
3. 检查前端请求的 Content-Type 是否为 `application/json`
**解决**:
```bash
# 确保配置生效
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. 查看后端日志
```bash
# 实时日志
tail -f /www/wwwroot/api.yunzer.cn/go.log
# 或者查看 systemd 日志(包含 fmt.Println 输出)
journalctl -u go-api -f
```
### 3. 测试 API
使用 curl 测试:
```bash
# 获取 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