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

使用Azure Storage SDK下载Blob时条件读取功能异常求助

Azure Storage SDK下载Blob时读取条件设置异常问题

我在使用Azure Storage SDK下载Blob时,遇到了读取条件设置不生效的问题。

操作流程

  • 上传Blob(正常工作)
  • 下载Blob(正常工作)
  • 通过blobRef.GetProperties().Etag获取Blob的Etag(正常工作)
  • 使用该Etag再次尝试下载Blob,期望触发RequestFailedException异常且e.ErrorCode == ConditionNotMet(失败)

相关代码

var condition = new Azure.Storage.Blobs.Models.BlobRequestConditions
{
    IfNoneMatch = new Azure.ETag(previousEtagString),
};

//blobRef是Azure.Storage.Blobs.BlobClient的有效实例
//target为文件路径

blobRef.DownloadTo(target, conditions: condition); // 此处应抛出RequestFailedException

备注

  • 对比步骤3获取的Etag(转换为字符串)与步骤4传入的Etag,结果显示两者一致:blobRef.GetProperties().Etag == new Azure.Etag(blobRef.GetProperties().Etag.ToString()) -> true
  • 已在GitHub仓库提交相关问题
  • 在v11版本中测试用例可正常运行:
var blobRef = _blobContainer.GetBlockBlobReference(identifier);
blobRef.DownloadTo(target, AccessCondition.GenerateIfNoneMatchCondition(stringEtag)); //抛出StorageException
  • 注意到第二次下载的Blob为空文件,无数据,而第一次下载的Blob有数据。读取条件是否仅部分生效但未抛出异常?
  • 这肯定是一个Bug,已在GitHub仓库提交Issue

请求响应截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:36:33