Files
Nexus/docs/design/specs/2026-05-18-file-manager-v2-design.md
T
Your Name c9a99f4fb3 fix: 全项目文档对齐 + 代码清理
代码修复:
- 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>
2026-05-22 08:19:56 +08:00

4.0 KiB
Raw Blame History

文件管理器 v2 设计规格

⚠️ 已归档 — 2026-05-22 本文档引用的文件结构已过时:web/files.php 已迁移到 web/app/files.html (Tailwind CSS v4 + Alpine.js + SFTP API)web/file_actions.phpweb/browse_dirs.php 已不存在,文件操作通过 server/api/sync_v2.py SFTP 端点实现。功能已实现,保留本文档供历史参考。

日期: 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 层,点击展开时懒加载子目录。