使用List Blobs REST API能否恢复获取Blob大小而非长度?
问题解答
首先明确:Azure Blob Storage的List Blobs REST API返回的<Content-Length>字段始终以字节为单位,你之前看到的“2mb”只是对字节数做单位转换后的显示结果,并非API直接返回带单位的数值。现在出现的“3000字符”,大概率是工具/解析逻辑误将字节数判定为字符数,或是你混淆了文本Blob的字符数与字节数(比如UTF-8编码下,单中文字符占3字节,3000字符对应字节数约9000)。
针对你的需求,提供几个直接解决方案:
- 手动转换单位:从API返回的
<Content-Length>字段获取字节数,自行转换为MB(字节数 ÷ 1024 ÷ 1024)或其他所需单位,这是最可靠的方案,不受API版本或工具限制。 - 尝试降级API版本:你当前使用的
2018-03-28是稳定版本,若怀疑版本导致返回逻辑变化,可尝试更早的版本,比如2017-11-09,请求URL修改为:https://<storage>.blob.core.windows.net/<container>?restype=container&comp=list&x-ms-version=2017-11-09 - 排查解析逻辑:检查处理API返回结果的代码或工具,是否在解析时错误将字节数当作字符数统计,尤其针对文本类型Blob,要明确区分字节数与字符数的差异。
- 确认Blob类型:Page Blob的
<Content-Length>返回的是对齐到512字节的总大小,Append Blob返回的是实际写入的字节数,确认你操作的Blob类型是否与之前一致。
内容的提问来源于stack exchange,提问作者howlieT
相关产品推荐
相关产品推荐

