调用BlobClientBase.queryWithResponse()查询Blob是否有文件大小限制
BlobClientBase.queryWithResponse() 查询Blob的大小限制说明 queryWithResponse() 底层对接Azure Blob Storage的Blob快速查询能力,该能力不存在Blob总文件大小的硬性阈值,但存在单条记录大小1MiB的硬限制,你遇到的record is larger than supported异常就是触发了这个限制。
- 限制规则说明:
快速查询在解析文件时,会按照你传入BlobQueryOptions的序列化配置(CSV按行分隔符、JSON按对象边界)把文件切分成独立的记录单元逐块返回,要求单条记录单元的体积不能超过1MiB。 - 常见触发原因:
- 查询的是无明确分隔符的单块文本/二进制文件,SDK默认将整个文件识别为单条记录,文件体积超过1MiB就会抛出异常
- 配置的记录分隔符、字段分隔符和文件实际格式不匹配,导致切分逻辑失效,多份数据被合并为单条超阈值记录
- 文件本身的单条结构化数据(比如单行CSV、单个JSON对象)体积超过1MiB
- 处理方案:
- 若查询目标是无分隔的大体积单块文件,不要使用快速查询接口,改用
download()或downloadContent()方法拉取全量文件后在本地做过滤查询,Blob快速查询本身是为分隔符结构化的日志、表格类数据设计的,不适配单块大文件场景 - 若查询的是CSV、JSON类结构化文件,检查
BlobQueryOptions中传入的序列化配置,确认分隔符、转义规则和文件实际格式一致,保证切分后的单条记录体积在1MiB以内 - 若业务场景本身存在单条记录超过1MiB的结构化数据,目前Blob快速查询不支持调整该1MiB阈值,只能替换为全量下载后本地处理的方案
- 若查询目标是无分隔的大体积单块文件,不要使用快速查询接口,改用
注意:Blob总文件体积不受1MiB限制,只要切分后的单条记录符合大小要求,数GB级别的大文件也可以正常通过该接口完成查询
内容的提问来源于stack exchange,提问作者xxxr
相关产品推荐
相关产品推荐

