feat(k8s): M3 Pod文件上传 + ExecInPod WebSocket协议重写
M3: Pod 文件上传 - 后端: POST .../pods/:pod/files/upload (multipart, base64分块exec写入) - 前端: PodFileBrowser 增加上传按钮 + FormData API - 路由: 新增 Kuboard (:clusterCode) + 旧 (:id) 两套路由 重大修复: ExecInPod 从 raw HTTP SPDY 改为 WebSocket channel.k8s.io - 旧方案: HTTP POST + SPDY upgrade → 无法解析响应(协议头缺失 + 帧解析复杂) - 新方案: gorilla/websocket Dialer + channel.k8s.io 子协议 → 和 ExecTerminal 一致 - 影响: 文件浏览/下载/上传全部恢复正常 修复: BusyBox ls 解析 - BusyBox 不支持 --time-style 参数,默认输出 Mon DD HH:MM 格式 - 解析器改为自动检测 GNU vs BusyBox 日期格式
This commit is contained in:
1 parent
69df073d42
commit
9ab7572b8e
11 files changed
+389
-126
No files matched your search
+7
-1
@@ -84,7 +84,13 @@ curl -s "http://127.0.0.1:8080/api/v1/kubernetes-clusters/1/pods" \
|
||||
# 上传文件
|
||||
echo "test content" > /tmp/test-upload.txt
|
||||
curl -X POST "http://127.0.0.1:8080/api/v1/kubernetes/1/namespace/devops/pods/aiops-xxx/files/upload?path=/tmp&container=aiops" \
|
||||
-H "Authorization: Bearer $TOKEN" \
|
||||
-H "Authorization: Bearer ***" \
|
||||
-F "file=@/tmp/test-upload.txt"
|
||||
# 期望: 200 + 文件出现在列表中
|
||||
```
|
||||
|
||||
### 通过标准
|
||||
- [x] 上传 API 返回 200 + verify 字段匹配文件大小
|
||||
- [x] 文件列表 (ls) 能看到上传的文件
|
||||
- [x] ExecInPod 使用 WebSocket channel.k8s.io 协议(不再用 SPDY raw HTTP)
|
||||
- [x] BusyBox ls 解析兼容(Mon DD HH:MM 格式)
|
||||
Reference in new issue
Block a user