Put Blob HTTP请求添加多个Blob标签时x-ms-tags头格式错误
问题解决方法
x-ms-tags请求头的多标签格式不符合Azure Blob Storage REST API规范是报错的核心原因,按照以下规则配置即可正常写入多个索引标签:
- 多标签格式规则
多个标签的键值对使用&作为分隔符,整体格式和URL查询字符串格式一致,结构为key1=value1&key2=value2&key3=value3,不需要额外给键、值包裹单引号或多余的双引号。
你要写入Project=Contoso、test1=1两个标签时,正确的请求头配置如下:{ "Content-length": "0", "content-type": "application/pdf", "x-ms-version": "2020-04-08", "x-ms-blob-content-disposition": "attachment; filename=\"test1.pdf\"", "Date": "7/15/2022 11:50 AM", "x-ms-blob-type": "BlockBlob", "x-ms-tags": "Project=Contoso&test1=1" } - 特殊字符处理
如果标签键或者值中包含空格、&、=、非ASCII字符等特殊内容,只需要对对应键、值部分做URL编码即可,不需要额外加引号包裹。例如要写入键为Project Name、值为Contoso&Partners的标签,x-ms-tags对应值为Project%20Name=Contoso%26Partners。 - 额外注意事项
- 标签键长度上限为128字符,标签值长度上限为256字符
- 标签键大小写不敏感,写入时会自动统一大小写
- 每个Blob最多支持设置10个索引标签
你之前的配置中在
x-ms-tags值里额外添加了转义双引号、单引号,且没有使用&分隔两个标签键值对,是触发TagsHeaderInvalidFormat错误的直接原因。
内容的提问来源于stack exchange,提问作者Harry Nicholls
相关产品推荐
相关产品推荐

