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

使用@azure/storage-blob调用listContainers时遇AZURE_TRACING_DISABLED未定义错误

解决@azure/storage-blob调用listContainers时的"AZURE_TRACING_DISABLED"未定义错误

问题重现

使用@azure/storage-blob库,通过BlobServiceClient调用listContainers()获取容器列表时,触发错误:

cannot read properties of undefined (reading 'AZURE_TRACING_DISABLED')

初始化连接字符串代码:

const connectionString = `BlobEndpoint=${environment.SAS_URL};SharedAccessSignature=${environment.SAS}`    
this.blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);

调用容器列表代码:

async listCointainer(){    
  let containers = []    
  let iter = this.blobServiceClient.listContainers()    
  let containerItems = await iter.next()    
  while(!containerItems.done){      
   containers.push(containerItems.value.name)      
   containerItems = await iter.next()    }    
   console.log(containers);  
}

原因及修复方案

1. 依赖包版本不兼容或缺失

AZURE_TRACING_DISABLED是Azure SDK内部追踪模块的配置项,错误通常源于@azure/storage-blob依赖的@azure/core-tracing包未正确安装或版本不匹配。

修复步骤:

  • 卸载并重装指定稳定版本的@azure/storage-blob:
    npm uninstall @azure/storage-blob
    npm install @azure/storage-blob@12.17.0
    
  • 若package.json中无@azure/core-tracing依赖,手动安装:
    npm install @azure/core-tracing
    

2. 连接字符串格式错误

使用SAS构建连接字符串时,需严格遵循格式要求:
BlobEndpoint=https://<account-name>.blob.core.windows.net/;SharedAccessSignature=<sas-token>

检查点:

  • 确认environment.SAS_URL是完整的Blob服务端点(如https://xxx.blob.core.windows.net)
  • 确认environment.SAS是不带?前缀的完整SAS令牌

3. 异步迭代器写法优化

虽然原有逻辑可行,但改用for await...of语法可简化代码并避免潜在异步问题:

async listCointainer(){    
  let containers = []    
  for await (const container of this.blobServiceClient.listContainers()) {
    containers.push(container.name);
  }    
  console.log(containers);  
}

4. 确保BlobServiceClient已完成初始化

检查调用listContainers()的时机,确保this.blobServiceClient已完成初始化。例如在Angular中,应在ngOnInit钩子中完成初始化:

ngOnInit(): void {
  const connectionString = `BlobEndpoint=${environment.SAS_URL};SharedAccessSignature=${environment.SAS}`;
  this.blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:35:16