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

Dart/Flutter使用azblob上传Azure Blob遇InvalidMetadata错误求助

问题分析与解决方案

你完全用错了请求头:

  • x-ms-range是用来做范围请求的,格式要求是bytes=起始字节-结束字节(比如bytes=0-1023表示仅操作Blob的前1024字节),你把标签内容塞到这个头里,Azure服务器无法解析,所以返回InvalidMetadata错误。

正确设置Blob标签的方法

要给Blob设置标签,必须用x-ms-tags请求头,格式为键值对,多个标签用&分隔:

// 修正后的代码
Map<String, String> headers = { "x-ms-tags": "VIN=TEST1" };
await storage.putBlob('/$container/$key.txt', body: 'Halllooo', headers: headers);

额外注意事项

  1. 标签键不能以x-ms-开头,也不能包含空格或控制字符
  2. 如果标签的键/值里有&、=这类特殊字符,需要做URL编码(比如VIN=TEST&123要写成VIN=TEST%26123)
  3. 如果你要设置的是Blob元数据(非可索引的自定义信息),需用x-ms-meta-前缀,示例:
    Map<String, String> headers = { "x-ms-meta-VIN": "TEST1" };
    await storage.putBlob('/$container/$key.txt', body: 'Halllooo', headers: headers);
    

内容的提问来源于stack exchange,提问作者Lukas Fürst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:02:27