你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
AzCopy 是一个命令行实用工具,可用于向/从存储帐户复制数据,或者在存储帐户之间复制数据。 本文将帮助你下载 AzCopy,连接到你的存储帐户,然后传输数据。
AzCopy V10 是当前支持的 AzCopy 版本。 它仅在正式维护的 Windows、Linux 或 macOS 版本上受支持。 如果需要使用旧版 AzCopy,请参阅本文的使用旧版 AzCopy 部分。
AzCopy 用例
使用 AzCopy 将数据复制到 Azure 存储帐户或从 Azure 存储帐户之间复制数据。 常见用例包括:
- 将数据从本地源复制到 Azure 存储帐户
- 将数据从 Azure 存储帐户复制到本地源
- 将数据从一个存储帐户复制到另一个存储帐户
AzCopy 通过命令和选项支持每种用例。 例如,AzCopy 具有用于复制或同步数据的本机命令。 这种支持使 AzCopy 成为一种灵活的工具,可用于一次性复制活动和正在进行的同步方案。 可以将特定的存储服务(如 Azure Blob 存储或 Azure 文件存储)作为目标,还可以在它们之间复制。 例如,可以将数据从 Azure Blob 存储容器复制到 Azure 文件共享,反之亦然。
有关数据传输指南的完整列表,请参阅本文的 “传输数据 ”部分。
获取 AzCopy
如果在 Linux 计算机上使用 AzCopy,则可以使用包管理器。 对于所有其他作系统,请下载可移植的二进制文件。 有关 AzCopy 版本的详细信息,请参阅 AzCopy 发布页。
使用包管理器(仅限 Linux)
通过 Linux 分发版的包管理器安装 AzCopy 是获取此工具的最方便且最易维护的方法。 包管理器安装包括自动依赖项解析、简化的更新以及与系统软件管理的集成。 有关分步指南,请参阅 使用包管理器在 Linux 上安装 AzCopy。
下载可移植二进制文件
安装包仅适用于 Linux。 对于所有其他作系统,可以将 AzCopy V10 可执行文件下载到计算机上的任何目录。
- Windows 64 位 (zip)
- Windows 32 位 (zip)
- Windows ARM64 (zip)
- Linux x86-64 (tar)
- Linux ARM64 (tar)
- macOS (zip)
- macOS ARM64 (zip)
这些文件压缩成 zip 文件(Windows 和 Mac)或 tar 文件(Linux)。 要在 Linux 上下载并解压缩 tar 文件,请参阅 Linux 分发文档。
注意
如果要复制数据到或从你的 Azure 表存储 服务,请安装 AzCopy 7.3 版。
将 AzCopy 添加到系统路径
为方便起见,请考虑将 AzCopy 可执行文件的目录位置添加到系统路径。 这样就可以在系统上的任何目录中键入 azcopy。 如果未将 AzCopy 目录添加到路径中,您需要将目录更改为 AzCopy 可执行文件所在的位置,然后在命令壳中输入azcopy或.\azcopy。
授权 AzCopy
系统不会自动向 Azure 存储帐户的所有者分配数据访问权限。 在使用 AzCopy 执行任何有意义的操作之前,需确定如何向存储服务提供身份验证凭据。 可以使用 Microsoft Entra ID 或使用 SAS 令牌提供凭据。
使用 Microsoft Entra ID 进行授权
使用 Microsoft Entra ID 可以一次性提供凭据,而无需向每个命令追加 SAS 令牌。 首先选择要授权的安全主体类型。 使用下表作为指南。
| 安全主体 | Guidance |
|---|---|
| 用户标识 | 使用用户标识授权对 AzCopy 的访问权限 |
| 托管标识 | 使用托管标识授权对 AzCopy 的访问权限 |
| 服务主体 | 使用服务主体授权 AzCopy 访问权限 |
使用 SAS 令牌授权
可以将 SAS 令牌追加到 AzCopy 命令中使用的每个源或目标 URL。 此示例命令以递归方式将本地目录中的数据复制到 Blob 容器。 一个虚构的 SAS 令牌将追加到容器 URL 的末尾。
azcopy copy "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true
若要详细了解 SAS 令牌及其获取方式,请参阅使用共享访问签名 (SAS)。
传输数据
授权身份或获取 SAS 令牌之后,就可以开始传输数据。
有关示例命令,请参阅这些文章中的任何一篇。
| 服务 | 文章 |
|---|---|
| Azure Blob 存储 | 将文件上传到 Azure Blob 存储 |
| Azure Blob 存储 | 从 Azure Blob 存储下载 Blob |
| Azure Blob 存储 | 在 Azure 存储帐户之间复制 Blob |
| Azure Blob 存储 | 与 Azure Blob 存储同步 |
| Azure 文件存储 | 使用 AzCopy 和文件存储传输数据 |
| Amazon S3 | 将数据从 Amazon S3 复制到 Azure 存储 |
| Google 云存储 | 将数据从 Google Cloud Storage 复制到 Azure 存储(预览版) |
| Azure Stack 存储 | 使用 AzCopy 和 Azure Stack 存储传输数据 |
可以交互方式运行 AzCopy 命令。 还可以将 AzCopy 合并到自动化脚本中,用于批处理作、计划数据传输或持续集成管道。 有关详细信息,请参阅 在脚本中使用 AzCopy 和计划的传输任务。
注意
AzCopy 不支持在传输期间主动更改源或目标的情况。
获取命令帮助
若要查看命令列表,请键入 azcopy -h 并按 ENTER 键。
若要了解特定命令,请包含命令的名称(例如: azcopy list -h)。
命令列表
下表列出了所有 AzCopy v10 命令。 每个命令链接到参考文章。
| 命令 | 说明 |
|---|---|
| azcopy bench | 通过将测试数据上传到指定位置或从指定位置下载测试数据来运行性能基准测试。 |
| azcopy copy(文件复制命令) | 将源数据复制到目标位置 |
| azcopy doc | 以 Markdown 格式生成工具的文档。 |
| azcopy env | 显示可配置 AzCopy 行为的环境变量。 |
| azcopy jobs | 与管理作业相关的子命令。 |
| azcopy jobs clean 解释:清理 AzCopy 任务 | 删除所有作业的所有日志和计划文件。 |
| azcopy 任务列表 | 显示有关所有作业的信息。 |
| azcopy 任务 移除 | 删除与给定作业 ID 关联的所有文件。 |
| azcopy jobs resume | 恢复具有给定作业 ID 的现有作业。 |
| azcopy jobs show(显示AzCopy作业) | 显示有关给定作业 ID 的详细信息。 |
| azcopy list | 列出给定资源中的实体。 |
| azcopy login | 登录到 Microsoft Entra ID 以访问 Azure 存储资源。 |
| azcopy login status | 列出给定资源中的实体。 |
| azcopy logout | 注销用户并终止对 Azure 存储资源的访问权限。 |
| azcopy make | 创建容器或文件共享。 |
| azcopy remove | 从 Azure 存储帐户中删除 Blob 或文件。 |
| azcopy sync | 将源位置复制到目标位置。 |
| azcopy set-properties | 更改一个或多个 Blob 的访问层,并替换并覆盖一个或多个 Blob 的元数据和索引标记。 |
注意
AzCopy 没有用于重命名文件的命令。
配置、优化和修复
查看以下任意资源:
使用以前的版本(已弃用)
如果需要使用旧版 AzCopy,请参阅以下链接之一:
注意
这些版本的 AzCopy 已弃用。 Microsoft 建议使用 AzCopy v10。
后续步骤
如果有疑问、问题或常规反馈,请在 GitHub 上提交。