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

Azure ListBlobs API报错:delimiter参数不支持但为必填项?

Azure ListBlobsHierarchyPager 报 UnsupportedQueryParameter(delimiter)错误解决

问题场景

参考Azure ListBlobs API文档确认delimiter参数支持,使用Go SDK调用NewListBlobsHierarchyPager时,收到如下错误:

<?xml version="1.0" encoding="utf-8"?><Error><Code>UnsupportedQueryParameter</Code><Message>One of the query parameters specified in the request URI is not supported.
RequestId:bdcdc245-001e-00a5-534c-0c0387000000
Time:2023-10-31T22:50:32.4761465Z</Message><QueryParameterName>delimiter</QueryParameterName></Error>

使用的代码如下:

pager := client.NewListBlobsHierarchyPager("/", &container.ListBlobsHierarchyOptions{
})

keys := make([]string, 0)
for pager.More() {
    res, err := pager.NextPage(ctx)
    HandleError(err)
    for _, val := range res.Segment.BlobItems {
        keys = append(keys, *val.Name)
    }
}

已尝试包括空字符串在内的多种分隔符,问题依旧。

原因及解决办法

核心原因

该错误通常由以下几种情况导致:

  1. 存储账户API版本过低:ListBlobsHierarchy依赖的分层查询功能需要存储账户支持API版本2018-11-09及以上,旧版本API不支持delimiter参数的分层用法。
  2. 存储账户类型不兼容:经典存储账户不支持分层查询功能,需使用通用v2存储账户。
  3. SDK版本问题:旧版Azure Storage Blob Go SDK可能存在参数处理逻辑错误,导致不必要的参数传递。
  4. 错误的API调用方式:当传入空字符串作为delimiter时,应使用NewListBlobsPager(普通列出)而非NewListBlobsHierarchyPager(分层列出),后者会强制携带delimiter参数,而部分旧API不接受空值。

解决步骤

  1. 检查存储账户配置

    • 登录Azure门户,进入目标存储账户的「配置」页面,确认REST API版本不低于2018-11-09。
    • 确认存储账户类型为通用v2,若为经典存储账户,建议升级。
  2. 更新SDK版本
    执行命令更新到最新版Azure Storage Blob Go SDK:

    go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@latest
    
  3. 代码调整

    • 若需分层查询,确保第一个参数传入有效的delimiter(如"/"),并在Options中显式指定匹配存储账户的API版本:
      import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container"
      import "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
      
      // ...
      
      pager := client.NewListBlobsHierarchyPager("/", &container.ListBlobsHierarchyOptions{
          APIVersion: to.Ptr("2023-01-03"), // 替换为存储账户支持的API版本
      })
      
    • 若无需分层查询(即使用空delimiter),直接改用NewListBlobsPager:
      pager := client.NewListBlobsPager(&container.ListBlobsOptions{})
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:34:51