Azure存储容器无法通过浏览器访问,仅可直接访问Blob对象
Azure Blob容器访问显示XML而非网页列表的解决办法
问题现状
访问Azure存储容器URL时,浏览器返回原始XML格式的Blob枚举结果(如下所示),但可以直接访问容器内的单个Blob(如示例中的PNG文件)。
此XML文件似乎没有关联的样式信息,以下显示文档树。
<EnumerationResults ServiceEndpoint="https://bmiplstorageacc.blob.core.windows.net/" ContainerName="bmiplcontainer"> <Blobs> <Blob> <Name>APTITUDE & REASONING TOPICS.PNG</Name> <Properties> <Creation-Time>Wed, 16 Nov 2022 12:39:56 GMT</Creation-Time> <Last-Modified>Wed, 16 Nov 2022 12:39:56 GMT</Last-Modified> <Etag>0x8DAC7CFAAA27D93</Etag> <ResourceType>file</ResourceType> <Content-Length>40678</Content-Length> <Content-Type>image/png</Content-Type> <Content-Encoding/> <Content-Language/> <Content-CRC64/> <Content-MD5>IKfsZIstgzA+I0WBgJ+2aw==</Content-MD5> <Cache-Control/> <Content-Disposition/> <BlobType>BlockBlob</BlobType> <AccessTier>Hot</AccessTier> <AccessTierInferred>true</AccessTierInferred> <LeaseStatus>unlocked</LeaseStatus> <LeaseState>available</LeaseState> <ServerEncrypted>true</ServerEncrypted> </Properties> <OrMetadata/> </Blob> </Blobs> <NextMarker/> </EnumerationResults>
原因
这是Azure Blob存储的默认行为:当容器配置为允许匿名读取访问时,访问容器URL会返回REST API的XML响应(枚举容器内的Blob),而非为网页浏览设计的可视化文件列表页面。
解决办法
1. 启用静态网站托管(推荐)
如果需要通过浏览器友好浏览Blob列表:
- 登录Azure门户,进入目标存储账户,找到「静态网站」选项
- 启用静态网站功能,设置索引文档(如
index.html)和错误文档路径 - 将Blob迁移到默认的
$web容器(或设置自定义容器为静态网站容器) - 通过静态网站的专属端点访问,即可展示结构化的文件列表(需自行编写或生成索引页面来列出Blob)
2. 自定义HTML列表页面
创建一个HTML页面,使用Azure Storage JavaScript SDK调用API获取Blob列表并渲染成网页。将该页面上传到容器中,访问此页面即可查看Blob列表。
3. 使用工具查看容器内容
若无需公开网页浏览,可使用以下方式查看容器内Blob:
- Azure存储资源管理器(桌面/网页版):直观管理和查看Blob
- Azure CLI命令:
az storage blob list --account-name bmiplstorageacc --container-name bmiplcontainer --output table
内容的提问来源于stack exchange,提问作者Mayank Sharma
相关产品推荐
相关产品推荐

