我试图找到一种简单的方法,如何通过Azure CLI将容器从一个存储异步复制到另一个存储。 Azcopy可以完成的工作。我的计算机上没有安装azcopy,但是安装了Azure CLI。
问题:我知道我需要一个接一个地复制。如何检查复制操作是否完成?
这种方法行之有效,但是一个一个az storage blob show
的调用会花费很长时间(几分钟)。
$backup = 'somecontainer'
$exists = (az storage container exists --name $backup --account-name an --account-key ak --output tsv) -match 'true'
if (!$exists) {
az storage container create --name $backup --account-name mt --account-key mk
}
$blobs = az storage blob list --container-name $backup --account-name an --account-key ak | ConvertFrom-Json
# copy one by one
$blobs.name | % {
$name = $_
az storage blob copy start --destination-blob $name --destination-container $backup --source-blob $name --source-container $backup --account-name mt --account-key mk --source-account-name an --source-account-key ak
}
# check operation status
$results = $blobs.name | % {
az storage blob show --container-name $backup --name $_ --account-name mt --account-key mk | ConvertFrom-Json
}
# still unfinished copy opearations:
$results | ? { !($_.properties.copy.completiontime) } | % { $_.name }
答案 0 :(得分:0)
@stej正如@GeorgeChen所述,您可以使用以下代码:
az storage blob copy start-batch --account-key 00000000 --account-name MyAccount --destination-container MyDestinationContainer --source-account-key MySourceKey --source-account-name MySourceAccount --source-container MySourceContainer
以下是文档链接: