1

我想将azure vm 磁盘直接导出到azure blob 存储?我已经在互联网上检查过,但我找不到方法。

我可以将磁盘下载到本地 PC,然后上传到 Blob 存储。但这需要很长时间和手动工作。所以我正在检查一种更直接的方式。也许使用Azure 存储资源管理器?磁盘和 Blob 存储位于同一资源组和区域中。

因为有vm磁盘的SAS下载链接,所以我可以将我的问题解释为:

有没有办法通过使用 url 将文件直接传输到 blob 存储?

你有什么建议吗?

4

1 回答 1

3

如果您知道 Azure 磁盘的 SAS 下载链接,我们可以使用 Azure CLI 命令az storage blob copy start或命令行实用程序AzCopy将磁盘作为 vhs 文件上传到 Azure blob 存储。

例如

az login

#Provide the name of your resource group where managed disk is created
resourceGroupName=myResourceGroupName

#Provide the managed disk name 
diskName=myDiskName

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600

#Provide storage account name where you want to copy the underlying VHD file of the managed disk. 
storageAccountName=mystorageaccountname

#Name of the storage container where the downloaded VHD will be stored
storageContainerName=mystoragecontainername

#Provide the key of the storage account where you want to copy the VHD 
storageAccountKey=mystorageaccountkey

#Provide the name of the destination VHD file to which the VHD of the managed disk will be copied.
destinationVHDFileName=myvhdfilename.vhd

#Generate the SAS for the managed disk 
sas=$(az disk grant-access --resource-group $resourceGroupName --name $diskName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)

#Copy the VHD of the managed disk to the storage account
az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas

# check copy status
az storage blob show -n $destinationVHDFileName -c $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey
于 2020-08-27T05:44:40.010 回答