first commit

This commit is contained in:
2026-06-03 10:09:03 +08:00
commit 81f5039458
6266 changed files with 188236 additions and 0 deletions
+218
View File
@@ -0,0 +1,218 @@
# 立即执行:重启服务
## 修复内容
✅ 已修复日志错误(`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