SFTP (文件传输)

安全、可视化的文件管理操作

安全文件传输协议 (SFTP) 是 SSH 的一个子系统。与 FTP (不安全) 或 FTPS (需要复杂的证书处理) 不同,SFTP 运行在你现有的 SSH 隧道之上。Netcatty 在界面中直接集成了一个强大的双面板 SFTP 客户端。

双面板界面

受 Norton Commander 和 Total Commander 等经典工具的启发,Netcatty 采用了 源/目的地 (Source / Destination) 模型。

  • 左侧面板: 通常是你的 本地文件系统
  • 右侧面板: 远程服务器

当然,这些面板是灵活的。你可以自由切换路径;当前上下文通过每个面板顶部的路径栏指示。

SFTP 双面板界面

文件操作

基础传输

拖放 (Drag and Drop) 是核心操作方式。

  • 上传: 从左侧 (本地) 拖动到右侧 (远程)。
  • 下载: 从右侧 (远程) 拖动到左侧 (本地)。
  • 外部拖入: 你也可以直接从操作系统的桌面将文件拖入远程面板进行上传,或从远程面板拖出到桌面进行下载。

进阶:远程到远程传输 (Remote-to-Remote)

Netcatty 支持在两个不同的远程服务器之间传输文件,而无需先将其下载到你的本地磁盘。

工作流:

  1. 连接到 服务器 A,打开 SFTP。
  2. 在左侧面板中,点击“连接”下拉菜单选择 服务器 B
  3. 现在你看到了服务器 B (左) 和服务器 A (右)。
  4. 直接拖动文件。
  5. 技术说明: Netcatty 通过本地内存安全地“管道”传输数据 (流 A -> 本地内存 -> 流 B)。数据不会写入你的本地硬盘,从而确保了极高的速度和安全性。

冲突处理

当文件已存在时,Netcatty 会提示你进行选择:

  • 替换 (Replace): 用新文件覆盖目标文件。
  • 保留两者 (Keep Both): 自动为新文件名添加唯一标识符(例如 file (1).txt)。
  • 跳过 (Skip): 不执行任何操作,取消该文件的传输。

批量操作

如果你正在传输包含多个冲突的文件夹,可以勾选 应用到所有 (Apply to all),以便一键解决所有剩余的冲突。

编辑文件 (内置编辑器)

你无需离开 Netcatty 即可修改配置文件或脚本。

  1. 右键点击远程文件(如 nginx.conf)。
  2. 选择 编辑 (Edit)
  3. Netcatty 会在内置的 Monaco 编辑器(驱动 VS Code 的核心引擎)中打开该文件。
  4. 语法高亮: 支持 40 多种语言,包括 Javascript, Python, Shell, YAML 和 Dockerfile。
  5. 直接保存: 按下 Cmd+S (Mac) 或 Ctrl+S (Win) 即可安全地将更改直接上传回服务器。
  6. 搜索与替换: 编辑器弹窗内支持完整的搜索功能。

内置 Monaco 编辑器

权限管理

SFTP 允许你修改 UNIX 文件权限。

  1. 右键点击文件/文件夹。
  2. 选择 属性 (Properties)
  3. 你会看到一个可视化的 chmod 网格(所有者/组/公共 的 读/写/执行 权限)。
  4. 你也可以直接输入八进制代码(如 755600)。
  5. 递归应用: 对于文件夹,你可以选择将这些权限应用到所有子项。

隐藏文件

默认情况下,系统会隐藏“点文件”(如 .bashrc, .env)以保持界面整洁。

  • 切换: 点击工具栏中的 眼睛图标 以显示/隐藏这些文件。

故障排除

“权限被拒绝 (Permission Denied)”

如果上传失败:

  1. 检查文件列表中的“所有者 (Owner)”列。当前连接的用户对该目录是否有写权限?
  2. 尝试先上传到 /tmp/ 以验证连通性,然后通过终端使用 sudo mv 移动。

“传输缓慢”

SFTP 是加密的,这会带来 CPU 开销。

  • 由于协议握手延迟,传输大量小文件(数千个 1KB 文件)速度会较慢。
  • 建议: 对于大规模目录传输,在终端中先用 tar -czf 压缩文件夹,下载单个 .tar.gz 文件,然后再在本地解压,速度会快得多。