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

Node.js zlib解压报incorrect header check错误求助

问题:zlib压缩Buffer直接存入varbinary列后解压报错「incorrect header check」

我数据库里有个varbinary类型的jsonBin列,打算存储经zlib压缩后的JSON字符串。zlib.gzipSync或zlib.deflateSync会返回Buffer对象,用base64编码后存储能正常解压,但直接存Buffer不编码时,解压就会抛出「incorrect header check」错误。我需要最小化传输数据长度,不想用base64,而且已经确认数据在数据库里存储正常。

无效代码示例

const zip = zlib.gzipSync(JSON.stringify(input));

// 存储zip到数据库的代码
// 从数据库检索zip返回zipBuffer的代码

const originalObj = JSON.parse(zlib.unzipSync(Buffer.from(zipBuffer)));

有效代码示例

const zip = zlib.gzipSync(JSON.stringify(input), 'base64');

// 存储zip到数据库的代码
// 从数据库检索zip返回zipBuffer的代码

const originalObj = JSON.parse(zlib.unzipSync(Buffer.from(zipBuffer)),'base64');

错误堆栈追踪

(注:未提供具体堆栈内容)

已尝试的排查方案

  • 直接存储Buffer或转为字节数组到jsonBin列
  • 检索后确认得到的是Buffer对象(即使存的是字节数组)
  • 分别尝试用zlib.inflateSync和zlib.unzipSync进行解压

恳请帮忙排查问题原因。

内容的提问来源于stack exchange,提问作者Piyush

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:37:05