c9a99f4fb3
代码修复: - web/agent/agent.py: datetime.utcnow() → datetime.now(timezone.utc) - requirements.txt: 移除 paramiko==3.5.0 (已无活跃引用) - 删除 server/infrastructure/ssh/pool.py (DEPRECATED, 无引用) 连接池三层对齐 (config.py/.env.example/session.py): - DB_POOL_SIZE 100→160, DB_MAX_OVERFLOW 100→120 - 基于 MySQL max_connections=400, install.php 公式 文档修复 (21项): - P0: 硬编码域名/IP替换为配置变量占位符 - P1: 10个过时设计文档加归档标注 (引用旧文件结构) - P2: step-3-webssh报告 paramiko引用修正 - 6份审查报告连接池参数勘误 100/100→160/120 - ECC安全报告 EC5 datetime.utcnow 标记已修复 - docs/README.md 文档索引重写 - docs/memory/mem_nexus_overview.md 移除硬编码凭证 - docs/project/tech-stack-inventory.md paramiko标记已移除 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
文件管理器 v2 设计规格
⚠️ 已归档 — 2026-05-22 本文档引用的文件结构已过时:
web/files.php已迁移到web/app/files.html(Tailwind CSS v4 + Alpine.js + SFTP API);web/file_actions.php和web/browse_dirs.php已不存在,文件操作通过server/api/sync_v2.pySFTP 端点实现。功能已实现,保留本文档供历史参考。
日期: 2026-05-18 状态: 已确认
一、布局
┌─ 工具栏 ──────────────────────────────────────────┐
│ ← → 🔄 | 📁+ 📄+ | ✂ 📋 | 🔍___________ | ⬆ 上传 │
│ /www/wwwroot/project/src/ │
├──────────┬─────────────────────────────────────────┤
│ 📁 www │ 名称 大小 权限 修改时间 │
│ 📁 wwwr │ 📄 .env 256B 644 05-17 22:01 │
│ 📁 pro │ 📁 src/ - 755 05-17 22:01 │
│ 📁 sr │ 📄 main.py 3.2K 644 05-17 22:00 │
│ 📁 lo │ │
│ 📁 backup│ │
│ 📁 opt │ │
├──────────┴─────────────────────────────────────────┤
│ 3 个文件,2 个目录 │ 拖拽文件到此上传 │
└───────────────────────────────────────────────────┘
- 左侧目录树(可折叠,宽 200px)
- 右侧文件列表(表格,按名称/大小/时间可排序)
- 底部状态栏(文件计数 + 拖拽上传区)
- 面包屑(可点击导航)
二、右键菜单
[ 📂 打开 ]
[ ✏ 编辑 ]
[ ──────────── ]
[ ✂ 剪切 ]
[ 📋 复制 ]
[ 📌 粘贴 ]
[ ──────────── ]
[ ✏ 重命名 ]
[ 🗑 删除 ]
[ ──────────── ]
[ 📦 压缩... ]
[ 🔓 权限... ]
三、快捷键
| 快捷键 | 操作 |
|---|---|
| Ctrl+C | 复制 |
| Ctrl+V | 粘贴 |
| Ctrl+X | 剪切 |
| Ctrl+A | 全选 |
| Delete | 删除选中 |
| F2 | 重命名 |
| F5 | 刷新 |
| Backspace | 上级目录 |
四、Monaco Editor
- CDN:
https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs - 双击文件 → 全屏编辑器
- 语法高亮、自动补全、多光标
- Ctrl+S 保存
- 状态栏显示行列号、编码
┌─ 编辑: main.py (UTF-8) ──────────── [保存] [关闭] ─┐
│ 1 │ import os │
│ 2 │ from flask import Flask │
│ 3 │ │
│ 4 │ app = Flask(__name__) │
│ Python │
└─ 行 1, 列 1 ────────────────────────────────────────┘
五、上传
- 工具栏上传按钮(选文件)
- 拖拽文件到文件列表区直接上传
- 上传进度条
六、压缩/解压
- 右键选中 → 压缩 → 输入名称 → 生成 .zip
- 右键 .zip/.tar.gz → 解压到当前目录
- 解压进度提示
七、涉及文件
| 文件 | 变更 |
|---|---|
web/files.php |
重写:目录树 + 文件列表 + 右键菜单 + 拖拽上传 |
web/file_actions.php |
加解压进度、移动操作 |
web/browse_dirs.php |
支持递归目录树查询 |
八、目录树 API
GET browse_dirs.php?action=tree&path=/www/wwwroot
→ {tree: [{name:"www",type:"dir",children:[...]}]}
只返回目录,深度 1 层,点击展开时懒加载子目录。