- Added GPU monitoring, process management, and Docker management panels for SSH sessions, providing real-time insights into resource usage and container management. - Implemented session input synchronization for broadcasting commands across multiple sessions. - Introduced temporary SSH links for one-off connections without saving, enhancing user flexibility. - Enhanced documentation to reflect new features and usage scenarios, including detailed descriptions of monitoring capabilities and session management improvements.
221 lines
8.2 KiB
Markdown
221 lines
8.2 KiB
Markdown
---
|
||
sidebar_position: 2
|
||
---
|
||
|
||
# SFTP 文件传输
|
||
|
||
NyaTerm 的远程文件能力建立在 SSH 会话之上。也就是说,**文件浏览器、SFTP 传输、远程文件本地编辑后回传** 都只在 SSH 会话中可用;本地终端、Telnet、串口不会显示这一套能力。
|
||
|
||
## 文件浏览器
|
||
|
||
连接 SSH 会话后,文件浏览器面板可以直接浏览远程目录。
|
||
|
||
你会得到这些基础能力:
|
||
|
||
- 自动进入远端用户主目录
|
||
- 进入文件夹、返回上级、刷新当前目录
|
||
- 点击路径栏直接编辑并跳转到目标路径
|
||
- 与终端当前工作目录同步
|
||
- 在不支持路径跟踪的会话中关闭自动同步
|
||
- 复制当前目录路径,或把路径直接发送到终端输入区
|
||
|
||
路径栏支持 `~` 和 `~/subdir` 形式的输入,适合快速跳转到主目录或常用子目录。
|
||
|
||
## 常见文件操作
|
||
|
||
在文件列表、工具栏或右键菜单中,你可以执行:
|
||
|
||
| 操作 | 说明 |
|
||
|------|------|
|
||
| 打开 | 下载到本地临时目录后,用默认编辑器打开 |
|
||
| 上传文件 | 选择一个或多个本地文件上传到当前目录 |
|
||
| 上传文件夹 | 整个目录上传到当前远端路径 |
|
||
| 下载 | 下载单个文件、多个已选文件,或整个目录 |
|
||
| 重命名 | 修改远端名称 |
|
||
| 移动 | 把文件或目录移动到新路径 |
|
||
| 删除 | 删除单个文件,或批量删除当前选中的多个条目 |
|
||
| 属性 | 查看大小、时间、UID/GID、权限等信息 |
|
||
| 新建文件 / 文件夹 / 符号链接 | 在当前目录中直接创建,符号链接按 OpenSSH 兼容方式处理 |
|
||
|
||
其中“打开”并不只是只读预览,而是为后续本地修改后回传做准备。
|
||
|
||
## 选择、多选与批量操作
|
||
|
||
当前文件浏览器已经支持更接近日常文件管理器的选择方式:
|
||
|
||
- 单击选择单个条目
|
||
- `Ctrl / Cmd` 多选
|
||
- `Shift` 范围选择
|
||
- `Ctrl / Cmd + A` 全选当前目录条目
|
||
- `Delete` 删除当前选中条目
|
||
|
||
当你选中了多个条目后,工具栏中的**下载**和**删除**会直接对当前选择生效;如果在多选状态下对某个已选条目打开右键菜单,相关批量操作也会作用于整组选中项。
|
||
|
||
## 上传与下载
|
||
|
||
### 上传
|
||
|
||
可通过工具栏、右键菜单或拖拽把本地内容上传到当前目录。
|
||
|
||
- 上传文件时可一次选择多个本地文件
|
||
- 上传目录时会保留目录结构
|
||
- 上传目录与上传文件会统一进入传输队列
|
||
- 适合用来同步脚本、配置文件、发布包或整组静态资源
|
||
|
||
### 外部拖拽上传
|
||
|
||
文件浏览器支持把系统文件管理器中的**文件或文件夹直接拖到 NyaTerm 文件浏览器区域**进行上传。
|
||
|
||
典型流程:
|
||
|
||
1. 打开一个 SSH 会话并进入文件浏览器
|
||
2. 把本地文件或文件夹拖到文件列表区域
|
||
3. 出现拖拽覆盖层后松手
|
||
4. NyaTerm 自动把它们加入上传流程
|
||
|
||
需要注意:
|
||
|
||
- 只有拖到文件浏览器列表区域才会触发上传
|
||
- 某些拖拽来源如果没有暴露本机真实路径,NyaTerm 无法直接解析,这时会提示你改用 **上传文件** 或 **上传文件夹**
|
||
|
||
### 下载
|
||
|
||
下载时有两种常见工作方式:
|
||
|
||
- 使用默认下载目录,直接保存到固定位置
|
||
- 每次都询问保存位置,适合临时排障或按任务分类归档
|
||
|
||
目录下载与文件下载都支持,远端目录会落到你选择的本地目标目录中。
|
||
|
||
## 传输面板与传输设置
|
||
|
||
NyaTerm 会把上传 / 下载任务统一放进传输队列中,便于你查看:
|
||
|
||
- 当前进度
|
||
- 实时传输速度
|
||
- 成功、暂停、取消与失败状态
|
||
- 同时进行中的任务
|
||
- 当前下载目录
|
||
|
||
单个传输项支持:
|
||
|
||
- **暂停**
|
||
- **继续**
|
||
- **取消**
|
||
- **失败后重试**
|
||
- **完成后从列表移除**
|
||
|
||
面板顶部还提供批量操作:
|
||
|
||
- **全部暂停**
|
||
- **全部继续**
|
||
- **全部取消**
|
||
- **清理已完成项**
|
||
|
||
在 **设置 → 传输** 中还可以按需调整:
|
||
|
||
- 上传 / 下载线程数
|
||
- 冲突时的处理策略
|
||
- 最大重试次数
|
||
- 传输缓冲区大小
|
||
- 是否保留时间戳
|
||
- 是否继续断点传输
|
||
- 默认文件权限
|
||
- 默认下载路径
|
||
- 是否每次询问保存位置
|
||
- 默认打开远程文件所使用的本地编辑器
|
||
|
||
### 重复目标处理
|
||
|
||
当上传或下载遇到同名文件时,重复目标对话框会让你选择:
|
||
|
||
- **覆盖**:替换目标文件
|
||
- **覆盖并不再询问本次任务**:对当前批量任务继续使用覆盖策略
|
||
- **跳过**:保留目标文件,跳过当前项
|
||
|
||
如果你经常批量同步同一类目录,可以在 **设置 → 传输** 中调整默认冲突策略,减少重复确认。
|
||
|
||
### SFTP 可靠性与性能
|
||
|
||
新的 SFTP 后端改进了目录、符号链接、已知大小文件下载和大文件上传的处理。你通常不需要关心内部实现;用户可见的变化是传输速度反馈更清楚,失败时错误信息更具体,目录和符号链接操作更接近 OpenSSH 行为。
|
||
|
||
此外,NyaTerm 会对单条 SSH 连接上的并发 SFTP 通道数量做限制,并在通道打开遇到临时失败时自动带退避重试。这样在同一主机上同时进行多项文件操作时更稳定,不容易因为瞬时的通道资源不足而报错。这些都是后端行为,没有需要手动配置的设置项。
|
||
|
||
## Zmodem 传输(rz / sz)
|
||
|
||
除了 SFTP,NyaTerm 还支持终端里常见的 Zmodem 传输,也就是在远端执行 `rz`(上传到远端)或 `sz`(从远端下载)时触发的传输方式。
|
||
|
||
- 检测到 `rz` 时,NyaTerm 会让你选择要上传的本地文件;上传前会先探测远端目录中的同名文件并处理冲突
|
||
- 检测到 `sz` 时,NyaTerm 会让你选择本地保存目录
|
||
- Zmodem 传输会作为条目出现在传输队列中,带实时进度
|
||
|
||
需要注意的是,Zmodem 传输的可用控制和普通 SFTP 传输不同:
|
||
|
||
- Zmodem 项**不支持**暂停、继续、重试、取消
|
||
- 传输结束后,你只能把它从列表中移除
|
||
- 面板顶部的**全部暂停 / 全部继续 / 全部重试**会自动跳过 Zmodem 项
|
||
|
||
这是因为 Zmodem 协议的传输由终端两端直接驱动,NyaTerm 只做进度展示和文件选择,不介入协议本身的暂停与续传。
|
||
|
||
## 与终端路径同步
|
||
|
||
文件浏览器可以和当前 SSH 终端的工作目录配合使用:
|
||
|
||
- **手动同步**:点击同步按钮,把浏览器直接跳到终端当前路径
|
||
- **自动同步**:开启自动同步后,终端 `cd` 到新目录时,文件浏览器自动跟随
|
||
- **发送到终端**:把当前目录路径或某个文件路径直接发到终端输入区,便于继续补命令
|
||
|
||
这对边跑命令边查文件非常有用,例如你在终端里进入某个发布目录后,文件浏览器会更容易保持在同一位置。
|
||
|
||
如果当前会话没有可用的终端路径跟踪能力,手动 / 自动同步入口会变为不可用状态;这通常意味着该会话暂时不能向后端稳定报告 cwd 变化。
|
||
|
||
## 本地编辑后自动回传
|
||
|
||
这是 NyaTerm 很适合真实运维场景的一项能力。
|
||
|
||
### 工作方式
|
||
|
||
1. 在 SSH 文件浏览器中对远程文件执行 **打开**
|
||
2. NyaTerm 先把文件下载到本地临时目录
|
||
3. 同时启动文件监听
|
||
4. 你在本地编辑器里保存后,应用会弹出上传提示窗口
|
||
|
||
### 上传提示窗口
|
||
|
||
文件被修改后,你可以选择:
|
||
|
||
- **上传一次**
|
||
- **始终上传**
|
||
- **取消**
|
||
|
||
如果你对某个文件选择了“始终上传”,那么在**当前会话内**后续再次保存时会直接回传,不再重复询问。
|
||
|
||
### 只在内容真正变化时回传
|
||
|
||
文件监听基于内容指纹判断是否需要回传,而不是单纯依赖保存事件或修改时间:
|
||
|
||
- 内容没有变化(例如编辑器只更新了修改时间)时,不会触发回传
|
||
- 只有文件内容确实改变才会弹出上传提示或执行自动回传
|
||
- 对“写临时文件再重命名”的原子保存方式也能正确识别
|
||
|
||
这样可以避免部分编辑器的保存行为造成的重复上传。
|
||
|
||
### 适合的使用场景
|
||
|
||
- 修改远程配置文件
|
||
- 调整部署脚本
|
||
- 打开日志或状态文件做本地分析
|
||
- 为文档准备“编辑后回传”的演示截图
|
||
|
||
## 文件属性与权限
|
||
|
||
在 **属性** 中可以查看:
|
||
|
||
- 文件大小
|
||
- 修改时间、访问时间
|
||
- 所有者和组
|
||
- UID / GID
|
||
- 权限的八进制表示
|
||
|
||
如果你的流程需要先核对权限再替换文件,这里会比单纯依赖 `ls -l` 更直观。
|