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

调用GET API无法获取容器文件列表,疑与sr=d及sdd=4参数有关

问题:Azure Blob存储List容器API调用报InvalidUri错误

问题详情

调用指定GET API时返回InvalidUri错误,推测和URL中的sr=d、sdd=4参数有关——另一组使用sr=c且无sdd参数的URL可正常发起请求,预期能列出容器中的文件。

GET请求端点

https://myaccount.blob.core.windows.net/xxx/yyy/zzz/xxx/yyy/?sp=rl&st=2022-08-01T12:19:00Z&se=2022-10-01T12:19:00Z&spr=https&sv=2021-06-08&sr=d&sig=xxxxxx&sdd=4&comp=list&restype=container

错误信息

<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>InvalidUri</Code>
    <Message>The requested URI does not represent any resource on the server.
RequestId:1f1dda37-c01e-0118-457d-b24d16000000
Time:2022-08-16T14:35:50.3635803Z</Message>
</Error>

问题原因及解决方案

原因分析

  1. sr参数冲突:sr是SAS token中的资源类型标识:
    • sr=c代表目标资源是容器(Container)
    • sr=d代表目标资源是目录(Directory),仅适用于启用分层命名空间的存储账户
      但请求中同时指定了restype=container(容器级List操作)和sr=d(目录资源),二者矛盾导致URI无效。
  2. sdd参数不适用:sdd=4是针对目录资源的删除行为参数,在容器级List请求中无意义,属于多余参数。

解决方案

如果目标是列出容器内容,直接调整参数:

  • 将SAS token中的sr=d改为sr=c
  • 移除sdd=4参数

调整后的请求URL示例:

https://myaccount.blob.core.windows.net/xxx/yyy/zzz/xxx/yyy/?sp=rl&st=2022-08-01T12:19:00Z&se=2022-10-01T12:19:00Z&spr=https&sv=2021-06-08&sr=c&sig=xxxxxx&comp=list&restype=container

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:54:25