数据物流 (SFTP 传输)

文件移动机制与冲突解决方法

数据移动至关重要。Netcatty 的传输引擎旨在强调可靠性而非单纯的原始速度,将数据完整性放在首位。

传输机制

队列系统

Netcatty 在传输过程中不会阻塞 UI。

  1. 后台工作线程: 当你拖动文件夹时,操作会被推送到后台队列。
  2. 并行度: 默认情况下,我们支持 4 个文件并行传输
    • 为什么要限制? SSH 是一种多路复用协议。在一个 TCP 套接字上同时发送 100 个文件会导致“队头阻塞 (Head-of-Line Blocking)”,并可能导致连接超时。
  3. 可视化状态: 弹出底部的 传输面板 (Transfers Panel) 可以看到:
    • 活动文件的进度条。
    • 总体批次进度。
    • 吞吐量 (MB/s)。

SFTP 传输队列

冲突逻辑 (决策矩阵)

当目标位置已存在同名文件时,Netcatty 会提示你做出选择:

动作逻辑使用场景
替换 (Replace)删除远程文件并写入新文件。部署新构建版本或更新脚本。
保留两者 (Keep Both)自动为新文件名添加唯一 ID(例如 app (1).jar)。快速备份或保存不同的版本。
跳过 (Skip)忽略该文件并取消此项传输。仅同步新文件到某个文件夹。

符号链接与特殊文件

UNIX 文件系统使用了一些需要特殊处理的文件类型:

  • 符号链接 (Symlinks): Netcatty 使用快捷方式图标显示符号链接。双击它们可以跳转到目标位置。
  • 传输符号链接: 在传输过程中,Netcatty 会尝试解析并复制符号链接指向的 内容
  • 套接字/管道: 命名管道 (|) 和套接字 (=) 会显示独特的图标,但它们是 不可传输 的。

权限错误

“上传失败:权限被拒绝 (Permission Denied)”。 这是 SFTP 中最常见的错误。

  • 诊断: 查看路径栏。你是否在 /root/var/www 中?
  • Sudo 问题: SFTP(协议本身)不支持 sudo。你是以自己的用户(如 ubuntu)身份登录的。即使你在终端中拥有 sudo 权限,你也无法直接写入 root 拥有的目录。
  • 解决方法:
    1. 先上传到你的主目录 (/home/ubuntu)。
    2. 打开终端。
    3. 运行 sudo mv ~/file /var/www/

递归删除

通过 SFTP 删除文件夹执行的是递归删除 (rm -rf)。这是即时且不可逆的。远程 Linux 服务器上没有“回收站”。