AzCopy – 跨帐户复制 Blob


您可以随时从 aka.ms/AzCopy 下载最新版本。

去年4月发布的版本中的新增功能

  • 支持跨帐户复制 BlobAzCopy 允许您在相同存储帐户内或不同存储帐户之间复制 Blob(有关跨帐户 Blob 复制的详细信息,请访问此博客文章)。这可以让您无论是从成本还是时间角度都以经济高效的方式将 Blob 从一个帐户复制到另一个帐户。数据传输由存储服务完成,因此不再需要您从源下载每个 Blob 后再上传到目标位置。
  • 新增 /NC:此选项允许您指定并发网络请求的数量。默认情况下,当您将文件从本地计算机上传到 Windows Azure 存储时,AzCopy 将最多启动本地计算机 CPU 核数 8 倍的网络请求数来执行并发任务。例如,如果您的本地计算机有四个 CPU 核,则 AzCopy 将同时启动 32 个(4 的 8 倍)网络请求。但是,如果您希望限制这种并发以限制本地 CPU 和带宽使用,则可以使用 /NC 选项指定最大并发网络请求数量。此处指定的值是绝对计数,不会与 CPU 核数相乘。因此在上述示例中,要将并发网络请求数量减半,您可以指定 /NC:16
  • 新增 /SNAPSHOT此选项允许您传输带快照的 blob。这是一个语义变化:在 AzCopy CTP 1(2012 年 10 月发布)中,默认情况下它会传递一个 blob 的快照;但从这一版本开始,默认情况下 AzCopy 将不会在复制 blob 时传输任何快照。只有指定了 /SNAPSHOT 时,AzCopy 才会确实将 Blob 的所有快照传输到目标位置;但是,这些快照在目标位置中将成为独立的 Blob,而不是原始基本 Blob 的快照,因此每个 Blob 将按全额收费(不会阻止在它们之间重复使用的场景)。传输的 blob 快照将重命名为以下格式:[blob-name] (snapshot-time)[extension]。

    例如,如果 readme.txt 是源 Blob,源容器中有 3 个为其创建的快照,则使用 /SNAPSHOT 将会在目标容器中再创建三个独立的 Blob,名称分别如下:

    readme (2013-02-25 080757).txt
    readme (2012-12-23 120657).txt
    readme (2012-09-12 090521).txt

  • 有关 blob 快照和单独 blob 对计费影响的比较,请参考此博客文章:了解 Windows Azure Storage 计费
  • 新增 /@:response-file此选项允许您将参数存储在一个文件中以供 AzCopy 处理,就像在命令行上指定的一样。响应文件中的参数可分为多行,但每个参数必须在一行(不支持一个参数分占 2 行)。AzCopy 会把每一行作为一个单独的命令行解析到参数列表中,并将所有参数列表连接成一个列表,由 AzCopy 像处理单一命令行一样进行处理。可以指定多个响应文件,但不支持嵌套的响应文件;它会被解析为位置参数或文件模式。不支持转义字符,但带引号字符串中的 "" 除外,它会被解析为单引号。请注意,/- 后面的 /@: 并不表示响应文件,它会像其他参数一样被视为位置参数或文件模式。

示例

以下是一些说明此版本新增功能的示例。

将所有 blob 从一个容器复制到不同存储帐户下的另一个容器

AzCopy
https://<sourceaccount>.blob.core.windows.net/<sourcecontainer>/
https://<destaccount>.blob.core.windows.net/<destcontainer>/  /sourcekey:<key> /destkey:<key> /S

上述命令会将所有 blob 从存储帐户“sourceaccount”中名为“sourcecontainer”的容器复制到存储帐户“destaccount”中另一个名为“destcontainer”的容器

如果您有带快照的基本 blob,请添加 /Snapshot 以将所有快照随基本 blob 一起移动到目标位置,请注意,目标位置中的 blob 快照将重命名为以下格式:[blob-name] (snapshot-time)[extension]

AzCopy
https://<sourceaccount>.blob.core.windows.net/<sourcecontainer>/
https://<destaccount>.blob.core.windows.net/<destcontainer>/   /sourcekey:<key> /destkey:<key> /S /SNAPSHOT

例如,如果您有 readme.txt,并且源容器中有 3 个快照,那么它在目标容器

readme.txt 中将如下所示:

readme (2013-02-25 080757).txt
readme (2012-12-23 120657).txt
readme (2012-09-12 090521).txt

您还可以创建一个响应文件,以便更轻松地反复运行相同的命令。创建名为“myAzCopy.txt”的 txt 文件,并包含如下内容

#源容器的 URI

https://<sourceaccount>.blob.core.windows.net/<sourcecontainer>/

#目标容器的 URI

https://<destaccount>.blob.core.windows.net/<destcontainer>/

然后您可以运行下面的命令将文件从源容器传输到目标容器

AzCopy /@:C:\myAzCopy.txt /sourcekey:<key> /destkey:<key> /S

本文翻译自:

http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx

Comments (0)

Skip to main content