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

无法通过BlobContainerClient读取含空文件夹前缀的Blob问题

问题:Azure Blob存储中含连续斜杠名称的Blob无法正常读取

我通过以下代码获取Blob:

var resultSegment = await blobContainer.GetBlobsAsync().AsPages(continuationToken, batchSize).FirstOrDefaultAsync();

遍历方式如下:

foreach (var blobItem in resultSegment.Values)

当处理名称为//somename(对应虚拟路径:[空文件夹]/[空文件夹]/somename)的Blob时,执行以下代码:

var blobClient = blobContainer.GetBlobClient(blobItem.Name);
var exists = await blobClient.ExistsAsync();
var tags = await blobClient.GetTagsAsync();

得到exists == false的结果,且调用GetTagsAsync()时抛出RequestFailedException。不含连续斜杠前缀的Blob可正常读取。

我对此感到困惑,因为blobContainer.GetBlobClient仅接收Blob名称参数,而该名称直接来自GetBlobsAsync返回的BlobItem.Name。所有NuGet包均已更新至最新版本。

更新

尝试用Azure Storage Explorer创建测试数据排查时,发现该工具无法创建无名称的虚拟文件夹(提示“Name must not be empty.”),也不允许目录路径包含连续斜杠(提示“Directory path must not contain consecutive slashes.”)。看起来Azure官方不允许这种格式,但我已有大量含此类虚拟路径的Blob。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 15:17:34