最近将Azure Blob Container 中文件进行了分类整理,整理时免不了对文件进行移动,删除这些操作,但在使用时无论是在Azure Portal 还是 Azure Storage Explorer 页面,其实对于文件的批量操作都不是很友好,Azure Portal 与 Azure Storage Explorer 页面已经足够友好,毕竟类似于文件批量操作还是自定义十足的,用户都会有各种各样的需求。在这样的情况微软已经为我们找到了弥补的办法,那就是本篇的AzCopy, 使用简单便捷的命令行方式对文件进行批量操作。


安装

安装方式有两种:

一种是跟随Visual Studio 安装,打开Visual Studio Installer, 咳咳... 老铁们打开之后别都是Visual Studio 2010 - 2015啊,这可都2019年了,在Modifying 页面找到 Individual components,找到下方的Azure Storage AzCopy 模块,挑勾安装即可。

另外一种方式可以独立安装,访问页面 Get started with AzCopy 下载,或直接点击Download the latest release version,下载完安装即可。AzCopy 所在目录如下:


使用

AzCopy 包含如下的命令参数,如果第一次使用不知如何下手也不要紧,看在最下方有 AzCopy /?:Sample 可以列出样例。

我的需求是,在一个Blob 下有多个Container 存在,我想在不同的Container 下进行全部文件Copy, 查到的命令是

AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer1/
    /Dest:https://myaccount.blob.core.windows.net/mycontainer2/
    /SourceKey:key /DestKey:key /S

/Source 代表源,即从哪个源复制文件,在Container 下的属性即可找到URL

/Dest 代表目标位置,即将文件复制到哪,在Container 下的属性即可找到URL

/SourceKey 代表源拥有的密钥,这个可在Access Keys 下找到

/DestKey 代表目标密钥,如果是同一个Container 下,则同上源密钥一样

/S 迭代操作,我们上方的需求是将一个Container 下的所有文件全部复制到另外一个容器下,即对该Container 下的所有文件进行迭代操作

如上,只需将对应的参数换成你需要操作的容器和密钥即可。


现在我们不想对所有文件进行复制,只复制特定名称的“BingWallPaper”文件,该如何操作呢,请参考下面参数

/Pattern 这个参数特别神奇,不仅可以对特定名称文件进行操作,也可以对文件目录进行操作,加上/S 参数更加强大

AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer1/
    /Dest:https://myaccount.blob.core.windows.net/mycontainer2/
    /SourceKey:key /DestKey:key /Pattern:"BingWallPaper" /S

我们还想将Container 下的文件复制到File 目录下,只需对/Dest 修改为FileURL 即可


如果还有其它需求可详细阅读AzCopy 命令下的其它参数 🎈