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

连接Azure Container报错:创建服务客户端需提供凭据

问题排查与解决方案

根本原因

你混用了两代完全不兼容的Azure存储Node.js SDK:

  • azure-storage是微软早已停止维护的v2版本SDK
  • 你代码中使用的BlobServiceClient.fromConnectionString、getContainerClient等API属于新一代v12版本的@azure/storage-blob SDK
    错误触发点是你调用v2版本的azure.createBlobService()时没有传入凭证参数,直接抛出了凭证缺失错误,后续的v12初始化逻辑根本没有执行。

修复步骤

  1. 先卸载错误的旧依赖,安装正确的v12版本依赖:
npm uninstall azure-storage
npm install @azure/storage-blob uuid
  1. 替换为正确的代码逻辑,注意upload方法是异步方法需要加await,否则无法正确获取返回结果:
// 导入v12版本SDK
const { BlobServiceClient } = require('@azure/storage-blob');
const { v1: uuidv1 } = require('uuid');

// 替换为你自己的连接字符串
const AZURE_STORAGE_CONNECTION_STRING = "my key";
const containerName = "tempp";

// 初始化Blob服务客户端
const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

console.log('\nCreating container...');
console.log('\t', containerName);

// 获取容器引用
const containerClient = blobServiceClient.getContainerClient(containerName);
// 若容器不存在则创建,权限设为私有
await containerClient.createIfNotExists({
  access: 'container'
});

const blobName = 'test' + uuidv1() + '.txt';
// 获取块Blob客户端
const blockBlobClient = containerClient.getBlockBlobClient(blobName);

console.log('\nUploading to Azure storage as blob:\n\t', blobName);

const data = "message";
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);

console.log("Blob was uploaded successfully. requestId: ", uploadBlobResponse.requestId);

额外排查项

  • 检查连接字符串是否完整复制了Azure门户「访问密钥」板块的完整连接字符串,不要遗漏开头的DefaultEndpointsProtocol=部分,也不要有多余的空格或换行
  • 确认存储账户没有启用防火墙限制你的访问IP
  • 确认你使用的密钥没有过期或者被撤销

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:24:03