我一直在尝试设置一些 blob 标签并收到一个可怕的错误:
Response: HTTP/1.1 400 The tags specified are invalid. It contains characters that are not permitted.
我可以在容器浏览器中设置具有相同值的标签,没有任何问题,但通过 REST api 它总是因括号而失败,我尝试了多种方式编码,但成功的唯一方法是省略专利(其中我目前正在做)。
成功的有效负载:
<Tags>
<TagSet>
<Tag>
<Key>FileID</Key>
<Value>307145362</Value>
</Tag>
<Tag>
<Key>FileName</Key>
<Value>/omit/gkcs2022-11-15 14.49.12.log</Value>
</Tag>
<Tag>
<Key>FileType</Key>
<Value>GKCS Log File</Value>
</Tag>
<Tag>
<Key>DeviceID</Key>
<Value>151283</Value>
</Tag>
<Tag>
<Key>Timestamp</Key>
<Value>2023-01-20T144920.192Z</Value>
</Tag>
<Tag>
<Key>DOWNLOADEDTO_GBMSVINTELLIFS</Key>
<Value>False</Value>
</Tag>
</TagSet>
</Tags>
负载失败:
原始:
<Tags>
<TagSet>
<Tag>
<Key>FileID</Key>
<Value>307145362</Value>
</Tag>
<Tag>
<Key>FileName</Key>
<Value>/omitted/gkcs(2022-11-15 14.49.12).log</Value>
</Tag>
<Tag>
<Key>FileType</Key>
<Value>GKCS Log File</Value>
</Tag>
<Tag>
<Key>DeviceID</Key>
<Value>151283</Value>
</Tag>
<Tag>
<Key>Timestamp</Key>
<Value>2023-01-20T144920.192Z</Value>
</Tag>
<Tag>
<Key>DOWNLOADEDTO_GBMSVINTELLIFS</Key>
<Value>False</Value>
</Tag>
</TagSet>
</Tags>
网址编码:
<Tags>
<TagSet>
<Tag>
<Key>FileID</Key>
<Value>307145362</Value>
</Tag>
<Tag>
<Key>FileName</Key>
<Value>/omit/gkcs%282022-11-15 14.49.12%29.log</Value>
</Tag>
<Tag>
<Key>FileType</Key>
<Value>GKCS Log File</Value>
</Tag>
<Tag>
<Key>DeviceID</Key>
<Value>151283</Value>
</Tag>
<Tag>
<Key>Timestamp</Key>
<Value>2023-01-20T144920.192Z</Value>
</Tag>
<Tag>
<Key>DOWNLOADEDTO_GBMSVINTELLIFS</Key>
<Value>False</Value>
</Tag>
</TagSet>
</Tags>
转义字符:
<Tags>
<TagSet>
<Tag>
<Key>FileID</Key>
<Value>307145362</Value>
</Tag>
<Tag>
<Key>FileName</Key>
<Value>/omit/gkcs\(2022-11-15 14.49.12\(.log</Value>
</Tag>
<Tag>
<Key>FileType</Key>
<Value>GKCS Log File</Value>
</Tag>
<Tag>
<Key>DeviceID</Key>
<Value>151283</Value>
</Tag>
<Tag>
<Key>Timestamp</Key>
<Value>2023-01-20T144920.192Z</Value>
</Tag>
<Tag>
<Key>DOWNLOADEDTO_GBMSVINTELLIFS</Key>
<Value>False</Value>
</Tag>
</TagSet>
</Tags>
最佳答案
根据 Azure Storage documentation ,只有以下字符可以用于有效的标签键和值:
- Lowercase and uppercase letters (a-z, A-Z)
- Digits (0-9)
- A space ( )
- Plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), and underscore (_)
遗憾的是,Set Blob Tags
REST API 请求当前不支持括号字符。
关于xml - 使用括号设置 Azure Blob 索引标记 - 在浏览器中有效,但在 REST API 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75187698/