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

使用@azure/storage-blob上传文件路径多出容器名层级的异常问题

问题原因分析

1. 核心原因:存储服务端点配置错误

BlobServiceClient 初始化时要求传入的 STORAGE_HOST 是存储账号的根服务端点,标准格式为 https://<存储账号名>.blob.core.windows.net/,不能包含容器名。

如果你的 process.env.STORAGE_HOST 配置时错误带上了容器名后缀,比如写成了 https://xxx.blob.core.windows.net/C1,后续调用 blobSvc.getContainerClient('C1') 时,SDK 会自动在现有端点后拼接 /C1,最终的 blob 实际存储路径就会变成 C1/C1/文件夹路径/文件名,刚好对应你遇到的容器下多了一层同名C1目录的问题。

2. 次要问题:store 函数调用参数顺序传反

你的 store 函数定义的入参顺序是 (本地文件路径: string, 目标存储目录: string),但示例调用里写反了参数顺序:

// 错误写法:第一个参数传了目标目录,第二个传了本地文件路径
store('folder1/folder2/folder3', '/temporary/path/to/the/file.jpg');

这个问题会导致拼接出来的 blob 名称不符合预期,也可能加剧路径异常问题,正确的调用写法应该是:

// 正确写法:第一个参数传本地文件路径,第二个传目标存储目录
store('/temporary/path/to/the/file.jpg', 'folder1/folder2/folder3');

修复方案

  1. 修正 STORAGE_HOST 配置,删除端点末尾的容器名后缀,仅保留存储账号根端点
  2. 调整 store 函数的调用参数顺序,和定义保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:45:09