Microsoft.Azure.Storage.Blob v11.1.2中ListBlobsSegmentedAsync不返回空值Blob元数据问题求助
问题现象与测试结论
- 当前使用的客户端版本为
Microsoft.Azure.Storage.Blob v11.1.2 - 调用
CloudBlobContainer的ListBlobsSegmentedAsync方法时,若在方法第3个参数位置传入BlobListingDetails.Metadata,可正常返回查询结果中Blob携带的元数据;但当Blob的元数据取值为空时,对应元数据条目会被方法完全过滤、不会返回,该表现与Storage Explorer可正常展示空值元数据的行为不一致。
相关调用代码示例:
BlobResultSegment blobList = await container.ListBlobsSegmentedAsync( blobPath, true, BlobListingDetails.Metadata, null, continuationToken, null, null); foreach (CloudBlockBlob blobItem in blobList.Results) { // 尝试访问blobItem的元数据 }
- 测试过程发现:通过该版本Azure Storage Blob客户端API创建空值元数据时,会直接抛出
ArgumentException,无法完成元数据写入操作;但在Storage Emulator环境下,却可以成功创建带空值的元数据。 - 版本对比验证:空值元数据的读写全流程功能,在
Azure.Storage.Blobs v12.8.3版本中可正常运行,当前遇到的异常仅存在于所用的Microsoft.Azure.Storage.Blob v11.1.2版本。
业务需求:需要支持上传携带空字符串或null值元数据的Blob,希望了解在当前使用的v11.1.2版本下,是否存在可行的实现方案。
内容的提问来源于stack exchange,提问作者Csati
相关产品推荐
相关产品推荐

