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

Azure Blob Storage与NestJS报错:请求URI不对应服务器资源

解决Azure Blob Storage创建Blob时的URI错误

可能的原因及解决方案

1. 容器名称不符合规则或初始化错误

Azure Blob存储的容器名称必须为小写,仅允许包含字母、数字和短横线(不能以短横线开头/结尾,也不能连续使用短横线)。如果你的容器名称是TestContainer(包含大写字母),这不符合命名规范,会导致服务无法识别该资源。

  • 登录Azure Portal检查存储账户下的容器名称,确保与代码中使用的名称完全一致(全部小写)
  • 初始化ContainerClient时,确认容器名称参数正确,示例:
    // 正确的容器名称应为小写,比如"testcontainer"
    const containerClient = new ContainerClient(connectionString, "testcontainer");
    

2. 目标容器不存在

如果代码中指定的容器尚未在Azure存储账户中创建,ContainerClient无法找到对应资源,会抛出该错误。

  • 在执行Blob操作前,先检查并创建容器(如果不存在),可修改代码添加容器检查逻辑:
    async create(key: string, message: any) {
      const content = JSON.stringify(message);
      try {
        // 先确保容器存在
        await this.containerClient.createIfNotExists();
        const blobName = key;
        const appendBlobClient = this.containerClient.getAppendBlobClient(blobName);
        await appendBlobClient.createIfNotExists();
    
        await appendBlobClient.appendBlock(content, content.length);
      } catch (error) {
        // 打印详细错误信息便于排查
        console.error("Blob创建失败:", error.message, error.details);
        throw error;
      }
    }
    

3. Blob名称包含非法字符

Blob名称不能包含\ / : * ? " < > |等特殊字符,且长度不能超过1024字符。检查传入的key参数是否符合命名规则,若有非法字符需先做转义或过滤处理。

4. 连接配置错误

确认连接字符串/URL的正确性:

  • 检查连接字符串中的存储账户名称、密钥是否拼写正确
  • 如果使用连接URL,格式应为https://<account-name>.blob.core.windows.net/,确保没有多余路径或拼写错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:15:36