为什么通常要分两步
大多数 Mac 文件传输 App 都把你的 Mac 当作每次传输的一端。要把一个文件夹从预发布服务器转移到 S3 存储桶,你得先下载到 Mac,再找到它,然后上传到存储桶。等待时间翻倍,事后还要清理磁盘上的副本,选错文件夹的风险也随之而来。
在终端中,对于 SSH 服务器可以绕过 Mac:在两台主机之间使用 scp,或在其中一台上运行 rsync。前提是两端都支持 SSH,而且你熟悉这些命令。对 S3、WebDAV 或 FTP 来说,这就帮不上忙了。
逐步操作:从一台服务器拷贝到另一台
- 打开 AnyBucket,按 ⌘T 新建标签页。
- 按 ⇧⌘K 连接第一台服务器,或按 ⌘K 并输入书签名称中的几个字母。
- 按 ⌘\ 打开第二个窗格,然后从该窗格的来源菜单中选择另一台服务器。
- 按 ⇥ 回到源窗格,找到要传输的文件。
- 用 Space 标记它们,或按 + 并输入
*.jpg之类的模式,标记所有匹配的文件。 - 按 F5 将它们拷贝到另一个窗格,或按 F6 移动。
传输会加入窗格下方的队列,你可以继续工作。想不打开目标位置就选好它?⌘G 会把标记的文件拷贝到你在命令面板中选择的任意书签或文件夹,⌥⌘G 则是移动。
文件如何传输
AnyBucket 会为每次传输选择路径:
| 来源和目标 | 文件的传输方式 |
|---|---|
| 同一个 S3 账户或存储 | 在服务器上,使用 CopyObject |
| 同一台 WebDAV 服务器 | 在服务器上,使用 COPY 和 MOVE |
| 同一台 SFTP 服务器,账户有 shell | 在服务器上,通过 SSH 使用 cp |
| 两台不同的服务器 | 经由你 Mac 上一个容量有限的小型中转缓冲区流式传输 |
| 本机和服务器 | 直接上传或下载 |
移动会先拷贝文件、校验副本,然后删除原件。在副本到位之前,什么都不会被删除。
任意两种协议自由组合
每种协议都能与其他任何协议双向配合:SFTP、FTP、FTPS、Amazon S3 和 S3 兼容存储(Cloudflare R2、Backblaze B2、Wasabi、DigitalOcean Spaces、Google Cloud Storage、MinIO)、基于 HTTP 和 HTTPS 的 WebDAV,以及本机。一些常见任务:
- 发布素材:从 SFTP Web 服务器到 S3 或 R2 存储桶。
- 更换服务商:从 Amazon S3 到 Cloudflare R2 或 Backblaze B2,一个存储桶接一个存储桶。
- 停用旧主机:从 FTP 服务器到 WebDAV 共享或新的 SFTP 服务器。
在 AnyBucket 的测试中,每一组有序的协议组合都会针对真实服务器进行端到端拷贝和移动,每个字节都会核对。
文件已存在时
如果目标位置已有同名文件,AnyBucket 会在覆盖任何内容之前询问你。你可以替换它、仅在你的文件较新时替换、保留两者(副本会变为 name 2.ext)、跳过,或续传拷贝了一半的文件,并将这个选择应用到本次传输的其余文件。进一步了解冲突。
大量拷贝与连接中断
服务器之间的大任务可能需要一段时间,因此队列的设计就是要把它们完成:
- 连接中断或服务器重启时,会在 1 秒、3 秒和 8 秒后换用新连接重试。
- 队列会被存储。退出 AnyBucket 后,中断的传输会在下次启动时恢复。
- 只要协议允许,都会校验校验和。
- 关闭最后一个窗口后,AnyBucket 会继续在菜单栏中运行,传输也会继续。
仍然失败的项目会带着错误信息,在“传输”窗口(⌥⌘T)的需要处理下等待。请参阅传输停止了。