You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure VM快照复制至存储后本地下载为0字节的原因及解决方法

Azure快照本地下载0字节问题的原因及解决方法

问题原因

  • Blob与下载参数不匹配:你将快照复制到存储账户时,指定的目标容器是test、Blob名称是sample.vhd,但下载命令里用的容器是mycontainer、Blob名称是snap1,完全对应不上,导致下载了空内容。
  • 异步复制未完成即下载:az storage blob copy start是异步操作,提交后后台会持续复制数据,如果在复制完成前执行下载,会得到不完整甚至0字节的文件。
  • 本地文件名缺少后缀:下载命令生成的本地路径是c:\snapshots\snap1,没有.vhd后缀,虽不直接导致0字节,但会影响后续文件识别与使用。

解决步骤

方法一:修正下载参数,基于已复制的Blob下载

  1. 确认Blob复制状态:先检查存储账户testsa中test容器下的sample.vhd是否复制完成:
az storage blob show --container-name test --name sample.vhd --account-name testsa --account-key xxxx --query properties.copy.status

返回success表示复制完成。

  1. 执行正确的下载命令:
$filename = 'c:\snapshots\sample.vhd'
az storage blob download --container-name 'test' --name 'sample.vhd' --file $filename --account-name 'testsa' --account-key 'xxxx'

方法二:直接从快照下载到本地(跳过存储账户中转)

无需先复制到存储账户,直接通过SAS URL将快照下载到本地:

  1. 生成快照的SAS URL:
subscriptionId="xxxx"
resourceGroupName="xxx" 
snapshotName="snap1"
sasExpiryDuration=3600

az account set --subscription $subscriptionId

sas=$(az snapshot grant-access --resource-group $resourceGroupName --name $snapshotName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)
  1. 用AzCopy下载(大文件更稳定):
azcopy copy "$sas" "c:\snapshots\snap1.vhd"

若必须用Azure CLI,也可直接执行:

az storage blob download --source-uri $sas --file "c:\snapshots\snap1.vhd"

内容的提问来源于stack exchange,提问作者Melissa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:52:43