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

如何排查Azure Blob Storage的ResourceNotFound错误与认证问题

问题描述

我按照Azure Blob上传API构造了如下HTTParty请求:

#<HTTParty::Request:0x0000000106424558
 @changed_hosts=false,
 @credentials_sent=false,
 @http_method=Net::HTTP::Put,
 @last_uri=#<URI::HTTPS https://<account name>.blob.core.windows.net/<container name>/txt-blob>,
 @options=
  {:limit=>5,
   :assume_utf16_is_big_endian=>true,
   :default_params=>{},
   :follow_redirects=>true,
   :parser=>HTTParty::Parser,
   :uri_adapter=>URI,
   :connection_adapter=>HTTParty::ConnectionAdapter,
   :headers=>
    {"User-Agent"=>"Httparty",
     "x-ms-date"=>"Tue, 11 Jul 2023 14:06:07 GMT",
     "x-ms-version"=>"2018-11-09",
     "DataServiceVersion"=>"1.0;NetFx",
     "MaxDataServiceVersion"=>"3.0;NetFx",
     "Content-Type"=>"application/atom+xml; charset=utf-8",
     "x-ms-blob-type"=>"BlockBlob",
     "x-ms-blob-content-type"=>"text/plain; charset=ASCII-8BIT",
     "Content-Length"=>"5",
     "Content-MD5"=>"2Oj8otwPiW/Xy0ywAxuiSQ==",
     "Authentication"=>"SharedKey <account name>:<signed string base64>"},
   :body=>"test
"},
 @path=#<URI::HTTPS https://<account name>.blob.core.windows.net/<container name>/txt-blob>,
 @raw_request=#<Net::HTTP::Put PUT>>

收到响应:

<Error><Code>ResourceNotFound</Code><Message>The specified resource does not exist</Message></Error>

我怀疑存储账户将该请求视为匿名请求,但不清楚如何修改请求让服务器识别SharedKey认证方案,也难以查看Azure端的请求日志。请问我的请求构造是否存在问题?如何解决该认证识别问题?

解决方案
  • 修复认证头名称:将请求头中的Authentication改为Authorization,Azure Blob Storage仅识别Authorization作为认证头,这是当前无法识别SharedKey的核心原因。
  • 移除冗余OData头:删除DataServiceVersion和MaxDataServiceVersion,这两个头属于OData协议,普通Blob上传请求不需要,避免干扰服务器处理逻辑。
  • 验证签名字符串:确保SharedKey签名严格遵循Azure规则:
    • 签名字符串必须包含请求方法、Content-MD5、Content-Type、x-ms-date、完整资源路径(容器+Blob名称)等字段
    • 使用存储账户的访问密钥,通过HMAC-SHA256算法加密后再进行Base64编码
  • 检查资源路径正确性:确认存储账户名、容器名拼写无误,且容器已提前创建(默认无法自动创建容器)
  • 启用Azure诊断日志:在Azure门户进入存储账户,依次点击「监控」→「诊断设置」,添加新设置并勾选StorageRead、StorageWrite等日志类别,将日志保存到存储容器或Log Analytics,几分钟后即可查看请求的详细认证状态与错误细节

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:22:57