- 新增 webhttp 包: Router 最小路由接口(5 动词) + ServeMuxRouter 适配器 + WriteJSON 统一响应 - file/shell/process 三个被控能力包改以标准库 handler 形态注册, 不再绑死 gin - 由此 gin 及其连带重依赖(quic-go/http3、mongo bson、ugorji codec、goccy、validator)退出被控端二进制 - shell: recDir 死参数修复——原实现硬编码 ./rec, 传入的录制目录不生效; 现录制写入与记录列表同源 - shell: 终端创建失败由 panic 改为记日志后关连接(net/http 按连接兜底恢复, 不再依赖框架 Recovery) - file: 上传落盘不再沿用 SaveUploadedFile 的 MkdirAll+Chmod(Windows 盘根 Chmod 报参数不正确), 保留 MkdirAll 去掉 Chmod - 消费方: remote-client 纯 ServeMux 承载; remote-service 保留 gin 栈经 gin.WrapH 桥接(middle 链照常生效) 破坏性变更: RegisterRouters* 形参 gin.RouterGroup → webhttp.Router, 升级 tag v0.5.0
file
被控端文件管理 HTTP 能力(自 remote-backend-server internal/handlers/file 移植, 去 DB 依赖):目录浏览、改名、删除、上传、下载(断点支持)、目录创建。
路由
import "git.zeroonesoft.cn/golib/remote-core/file"
file.RegisterRoutersGatewayFile(r *gin.RouterGroup)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET/POST | /file/list |
目录列表(POST 收 JSON {path},避免路径含 # 等字符被 query 截断) |
| PUT | /file/name |
重命名 |
| DELETE | /file |
删除文件/目录 |
| GET/HEAD | /file/download |
下载(HEAD 取大小,GET 支持 Range 续传) |
| POST | /file/upload |
上传 |
| POST | /file/dir |
创建目录 |
注意
- 与 shell/process 同为被控 HTTP 能力,经 zonat 隧道 + web-gateway 反代出网。
- 路径参数来自控制端,接入公网前务必在网关侧做鉴权与路径白名单校验。