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

使用Azure CLI加SAS令牌下载存储Blob时报BlobNotFound错误如何解决?

Azure CLI下载Blob报BlobNotFound问题修复方案

1. 修正命令语法错误

你提供的原始命令存在两处明显语法问题:

  • $containername参数与后续的--account-name参数之间缺少空格,Azure CLI会将二者拼接为错误的容器名称,无法匹配到正确的容器
  • -f(本地输出路径参数)重复定义,你同时填写了-f aztest和-f tempfile,参数冲突会导致CLI无法正确解析执行逻辑
    修正后的PowerShell环境命令格式如下:
az storage blob download `
  -c $containername `
  --account-name $storageaccountname `
  --name $filepathwithname `
  -f ./tempfile `
  --sas-token $SAStoken

2. 处理路径中的特殊字符

你的Blob路径包含$符号,这是PowerShell的变量标识符,如果你用双引号定义$filepathwithname,PowerShell会自动将$2021当作变量解析,若未提前定义该变量,最终传入CLI的路径会变为sql/folder1/folder2/targetfile,自然找不到目标Blob。
修复方案:定义路径变量时使用单引号包裹,PowerShell单引号不会解析内部的特殊字符:

# 单引号包裹路径,避免$被识别为变量前缀
$filepathwithname = 'sql$2021/folder1/folder2/targetfile'

3. 校验SAS令牌权限

如果上述两项修正后仍报错,请检查SAS令牌配置:

  • 令牌必须授予目标Blob的**读取(r)**权限
  • 令牌的有效期未过期
  • 令牌的允许IP范围包含当前执行脚本的机器公网IP
  • 令牌的资源类型配置包含Blob存储

前置排查命令

你可以先执行以下命令验证Blob路径是否可被正常识别,确认路径和权限无问题后再执行下载操作:

az storage blob exists `
  -c $containername `
  --account-name $storageaccountname `
  --name $filepathwithname `
  --sas-token $SAStoken

返回结果中exists字段为true则代表路径和权限配置正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:24:00