---
title: "如何在 Mac 上于两台服务器之间拷贝文件"
description: "在 Mac 上把文件从一台服务器直接拷贝或移动到另一台，一步完成，无需手动下载再上传：SFTP 到 S3、存储桶到存储桶、FTP 到 WebDAV，在 AnyBucket 中按 F5 即可。"
url: https://anybucket.app/zh-hans/guides/copy-files-between-servers-mac
lang: zh-Hans
---

# 在服务器之间拷贝文件，一步完成

从预发布环境到生产环境，从 SFTP 服务器到 S3 存储桶，从一家服务商的存储桶到另一家的。下面介绍如何在 Mac 上一步完成。

## 简而言之

在一个窗格中打开第一台服务器，在另一个窗格中打开第二台，用 **Space** 标记文件，然后按 **F5** 拷贝或按 **F6** 移动。在 [AnyBucket](https://anybucket.app/zh-hans/features/server-to-server) 中，任意两台服务器都可以并排放置。两个窗格在同一台服务器上时，拷贝直接在服务器上完成（S3 CopyObject、WebDAV COPY、通过 SSH 的 `cp`）。在两台不同的服务器之间，文件会经由你 Mac 上的小型中转缓冲区传输，你无需管理任何临时文件。

## 为什么通常要分两步
大多数 Mac 文件传输 App 都把你的 Mac 当作每次传输的一端。要把一个文件夹从预发布服务器转移到 S3 存储桶，你得先下载到 Mac，再找到它，然后上传到存储桶。等待时间翻倍，事后还要清理磁盘上的副本，选错文件夹的风险也随之而来。

在终端中，对于 SSH 服务器可以绕过 Mac：在两台主机之间使用 `scp`，或在其中一台上运行 `rsync`。前提是两端都支持 SSH，而且你熟悉这些命令。对 S3、WebDAV 或 FTP 来说，这就帮不上忙了。

## 逐步操作：从一台服务器拷贝到另一台
1. 打开 AnyBucket，按 **⌘T** 新建标签页。
2. 按 **⇧⌘K** 连接第一台服务器，或按 **⌘K** 并输入书签名称中的几个字母。
3. 按 **⌘\\** 打开第二个窗格，然后从该窗格的来源菜单中选择另一台服务器。
4. 按 **⇥** 回到源窗格，找到要传输的文件。
5. 用 **Space** 标记它们，或按 **+** 并输入 `*.jpg` 之类的模式，标记所有匹配的文件。
6. 按 **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`）、跳过，或续传拷贝了一半的文件，并将这个选择应用到本次传输的其余文件。进一步了解[冲突](https://anybucket.app/zh-hans/features/conflicts)。

## 大量拷贝与连接中断
服务器之间的大任务可能需要一段时间，因此队列的设计就是要把它们完成：

- 连接中断或服务器重启时，会在 1 秒、3 秒和 8 秒后换用新连接重试。
- 队列会被存储。退出 AnyBucket 后，中断的传输会在下次启动时恢复。
- 只要协议允许，都会校验校验和。
- 关闭最后一个窗口后，AnyBucket 会继续在菜单栏中运行，传输也会继续。

仍然失败的项目会带着错误信息，在“传输”窗口（**⌥⌘T**）的**需要处理**下等待。请参阅[传输停止了](https://anybucket.app/zh-hans/support/troubleshooting#stopped-transfers)。

## 常见问题，一一解答

### 文件会经过我的 Mac 吗？

只有两侧是不同的服务器时才会。这时文件会经由你 Mac 上的小型中转缓冲区传输，由 AnyBucket 负责管理和清理。两个窗格在同一台服务器上时，拷贝在服务器上完成，不会下载任何内容。

### 可以从 SFTP 直接拷贝到 Amazon S3 吗？

可以。在一个窗格中打开 SFTP 服务器，在另一个窗格中打开存储桶，标记文件后按 F5。在 SFTP、FTP、FTPS、S3、S3 兼容存储和 WebDAV 中任意两者之间都是如此。

### 在服务器之间移动文件安全吗？

移动会先拷贝、再校验，然后删除原件，因此在副本到位之前什么都不会被删除。如果出了问题，传输会在**需要处理**下等待，原件保持原样。

### 可以改用 scp 或 rsync 吗？

如果你习惯使用终端，在两台 SSH 服务器之间可以。但这些工具无法连接 S3、WebDAV 或 FTP，拷贝时也看不到两侧的内容。AnyBucket 的 SFTP 使用你自己的 `~/.ssh` 配置，因此同样的主机在两边都能用。

### 购买前可以试用吗？

可以。[在线演示](https://anybucket.app/zh-hans/try)在浏览器中运行，带有示例服务器：用 Space 标记一个文件，按 F5 把它从一台服务器发送到另一台。

## 延伸阅读

- [服务器到服务器](https://anybucket.app/zh-hans/features/server-to-server)
- [将文件夹与服务器同步](https://anybucket.app/zh-hans/guides/sync-folder-with-server)
- [Mac 版 S3 客户端](https://anybucket.app/zh-hans/guides/s3-client-mac)
- [在 Mac 上使用 SFTP](https://anybucket.app/zh-hans/guides/sftp-client-mac)

**以 $9.99 购买:** https://buy.polar.sh/polar_cl_pCF9yOjezTUaUqMPyUsxEho1EjcOvo6Bk49Q929LQCQ

---

AnyBucket 是由 [Clever Mechanisms](https://clevermechanisms.dev) 开发的独立软件，与 Apple Inc. 或任何存储服务商均无关联，也未获得其认可或赞助。 Independent software in the spirit of Cyberduck and the classic two-pane commanders. Not affiliated with iterate GmbH (Cyberduck). Apple、Mac、macOS、Finder 和 Quick Look 是 Apple Inc. 在美国及其他国家和地区注册的商标。Amazon S3 是 Amazon.com, Inc. 的商标。其他产品名称是其各自所有者的商标。 电子邮件支持: support@clevermechanisms.dev
