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

Azure存储账户中已存在的Blob通过浏览器访问时出现ResourceNotFound错误的问题排查

解决Azure Blob浏览器访问提示ResourceNotFound的问题

你遇到的这个ResourceNotFound错误,大概率是Blob的访问权限配置或者URL本身出了问题,我帮你梳理几个排查和解决的方向:

一、先确认Blob URL是否正确

  • 检查URL完整性:从属性面板复制URL时,偶尔会漏掉部分字符,尤其是Blob名称里有特殊字符(空格、下划线、中文等)的情况,要确保这些字符已经被正确编码(比如空格会被转成%20),直接复制的URL如果包含未编码的特殊字符,浏览器解析时就会找不到资源。
  • 核对名称大小写:Azure存储的Blob和容器名称是区分大小写的,要是你复制的URL里的Blob/容器名称大小写和实际存储的不一致,肯定会触发找不到资源的错误。

二、权限与访问策略的调整(这是核心问题)

这个错误确实和权限、访问策略直接相关,分几种场景来处理:

  1. 调整容器公共访问级别(快速开放访问)
    默认情况下,Azure存储容器的公共访问级别是专用(Private),这种状态下匿名请求(比如浏览器直接输URL)是无法访问Blob的。如果需要直接用URL访问:

    • 登录Azure门户,找到你的存储账户和目标容器。
    • 进入容器的「访问策略」设置,把公共访问级别改成Blob(允许匿名访问容器内所有Blob)或者容器(允许匿名访问容器及所有Blob)。
    • 注意:开放公共访问后任何人都能通过URL访问,若需要控制访问范围,更推荐用下面的SAS令牌方式。
  2. 生成SAS令牌访问(安全可控)
    不想开放公共访问的话,最安全的方式是用共享访问签名(SAS):

    • 在目标Blob的属性页,点击「生成SAS」,设置好合理的过期时间,至少勾选读取权限。
    • 复制生成的完整Blob SAS URL(包含末尾的令牌参数),用这个URL在浏览器里访问就能正常打开了。
  3. RBAC角色的作用说明
    RBAC角色是给Azure AD用户、服务主体这类身份授权的,它只对经过Azure AD认证的请求生效。而你直接用浏览器访问Blob URL属于匿名请求,所以RBAC角色在这里帮不上忙——如果想用RBAC控制访问,得用支持Azure AD认证的工具(比如Azure Storage Explorer)或者在应用里集成认证逻辑,不能直接用浏览器裸URL访问。

三、其他可能的排查点

  • 确认Blob是否存在:有时候可能误删了Blob,或者上传到了其他容器,去存储账户的容器列表里再核对一遍目标Blob的存在性。
  • 检查存储账户防火墙:如果你的存储账户设置了防火墙规则,只允许特定IP/虚拟网络访问,而你的浏览器IP不在允许列表里,Azure会返回ResourceNotFound(这是安全机制,隐藏真实原因)。这种情况可以在存储账户的「防火墙和虚拟网络」设置里添加你的IP,或者临时关闭防火墙测试。

补充:你看到的XML错误是Azure存储的标准返回格式,当匿名请求无权限或资源不存在时都会返回这个,所以优先排查URL和资源存在性,再处理权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:32:51