Skip to content

SFTP 文件管理

Reeve 的 SFTP 用 russh-sftp 实现,支持拖拽、流式分块上传、批量下载、目录树 + 路径栏导航。

进入

  • 主界面左侧导航 → SFTP
  • 服务器清单行 → SFTP 打开
  • 终端 toolbar → 切到 SFTP

布局

┌─────────────────────────────────────────────────┐
│  服务器选择 │ 路径栏 │ 刷新 上一级 家目录 最近   │
├──────────────┬──────────────────────────────────┤
│ 目录树       │  文件列表                         │
│ (左侧)       │  名称 | 大小 | 修改时间 | 权限    │
│              │                                  │
│              │  拖拽这里上传                     │
└──────────────┴──────────────────────────────────┘

路径栏

  • 直接输入绝对路径或相对路径 → Enter 跳转
  • 自动 realpath 解析(解析符号链接)
  • 显示当前完整路径

快速导航

按钮作用
家目录跳到 $HOME
上一级父目录
刷新重读当前目录
最近下拉选最近访问的目录(localStorage 记录)

目录树

左侧 Tree:

  • 目录双击展开 / 折叠
  • 点击直接进入
  • 与右侧列表联动

文件列表

排序:点列头切换名称 / 大小 / 修改时间 / 权限。

过滤:顶部「文件名过滤」框前端实时筛。

多选:

  • 单击复选框
  • Shift+点击 连续选
  • Ctrl+点击 多选

上传

拖拽上传

把本地文件直接拖到列表区

  • 视觉提示蓝色高亮
  • 自动开始上传
  • 实时进度条
  • 支持多文件、文件夹(递归)

按钮上传

toolbar 上传 按钮 → 选本地文件 → 上传到当前目录。

流式分块

Reeve SFTP 上传是流式分块实现:

  • 块大小 256 KiB
  • 无文件大小限制
  • 可随时取消

进行中的上传顶部有进度条 + 取消 按钮。

下载

  • 列表勾选要下载的文件
  • toolbar 下载 按钮 → 选本地目录
  • 多文件并行下载
  • 进度条 + 取消按钮
  • 单文件 ≤ 16 MiB 限制(避免对话 token 爆炸;超大文件请用 scp / rsync

右键菜单

文件右键:

操作说明
下载同上
复制路径完整远端路径到剪贴板(10s 自清)
在终端打开此目录切到终端并执行 cd <path>(不自动回车)

目录右键:

操作说明
进入同双击
新建文件 / 文件夹在当前目录创建
重命名
删除二次确认

文本文件直接查看

小于 1 MiB 的文本文件双击直接打开预览(只读)。

敏感路径

SFTP 像 SSH exec 那样有人用 / AI 区分,所以涉及敏感路径时:

人用 SFTP

  • 列举任何目录都不拦
  • 下载任何文件都不拦
  • 写入敏感路径/etc/shadow / /etc/sudoers / ~/.ssh/authorized_keys)会在审计里高亮

AI 走 sftp_write 工具

  • 列举不拦
  • 读取不拦但出口走脱敏规则
  • 写入敏感路径永久拦截(任何档位都拒)

进度回报

底部状态栏显示:

  • 当前传输任务(队列中 / 进行中 / 已完成)
  • 总进度(字节 / 总字节)
  • 速度(MB/s)

安全:剪贴板自清

  • 复制远端路径 → 10 秒后剪贴板自动清空
  • 复制文件名 / 内容 → 同上

故障排查

症状排查
上传失败检查远端目录权限;磁盘是否满
中文文件名乱码远端 locale 设 UTF-8
大文件慢russh 全 Rust 实现,单线程;超大文件请用 rsync -P
拖拽不响应浏览器内核问题,重启 Reeve;或用按钮上传
列举超时远端目录过大(>10k 文件);建议先 cd 到子目录

下一步

受控的远程运维助手 — 让 AI 安全地帮你管服务器