使用 AZCopy 一次从所有容器下载 blob
Using AZCopy to download blobs from all containers at one time
我需要从 Azure 存储帐户复制所有容器和 blob。我已经想出如何一次下载一个容器,但这非常乏味。我想一次性全部下载。
有人知道这方面的信息吗?
谢谢,
詹姆斯
据我所知,我们无法使用azcopy将所有容器的文件一次复制到本地。
如你所说,我们一次可以下载一个容器到本地
这里有一个解决方法:
我们可以先使用命令行工具(例如powershell)列出所有容器(Get-AzureStorageContainer),然后使用foreach将文件下载到本地。
像这样的powershell脚本:
$SourceStorageAccountName = "<SourceStorageAccountName>"
$SourceStorageKey = Get-AzureStorageKey -StorageAccountName $SourceStorageAccountName
$StorageContext = New-AzureStorageContext -StorageAccountName $SourceStorageKey.StorageAccountName -StorageAccountKey $SourceStorageKey.Primary
$containers = Get-AzureStorageContainer -Context $StorageContext
foreach ($c in $containers) {
"Transfer container " + $c.Name
$cmd = "C:\'Program Files (x86)'\'Microsoft SDKs'\Azure\AzCopy\AzCopy.exe /Source:" + $c.CloudBlobContainer.Uri.AbsoluteUri + " /Dest: +"youfile path"
Invoke-Expression $cmd
}
我需要从 Azure 存储帐户复制所有容器和 blob。我已经想出如何一次下载一个容器,但这非常乏味。我想一次性全部下载。
有人知道这方面的信息吗?
谢谢,
詹姆斯
据我所知,我们无法使用azcopy将所有容器的文件一次复制到本地。
如你所说,我们一次可以下载一个容器到本地
这里有一个解决方法:
我们可以先使用命令行工具(例如powershell)列出所有容器(Get-AzureStorageContainer),然后使用foreach将文件下载到本地。
像这样的powershell脚本:
$SourceStorageAccountName = "<SourceStorageAccountName>"
$SourceStorageKey = Get-AzureStorageKey -StorageAccountName $SourceStorageAccountName
$StorageContext = New-AzureStorageContext -StorageAccountName $SourceStorageKey.StorageAccountName -StorageAccountKey $SourceStorageKey.Primary
$containers = Get-AzureStorageContainer -Context $StorageContext
foreach ($c in $containers) {
"Transfer container " + $c.Name
$cmd = "C:\'Program Files (x86)'\'Microsoft SDKs'\Azure\AzCopy\AzCopy.exe /Source:" + $c.CloudBlobContainer.Uri.AbsoluteUri + " /Dest: +"youfile path"
Invoke-Expression $cmd
}