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

使用Snappy压缩的Avro文件在JS读取时出现解压缩错误求助

如何用JavaScript(avsc + snappy v7)读取Kafka Connect生成的Snappy压缩Avro文件?

我通过Kafka Connect在S3生成了Snappy压缩的Avro文件,尝试用JavaScript读取时遇到了如下问题:

  • 先后试用avro-js、avsc两个库,多数参考示例基于snappy v6版本,但我当前使用的是最新的snappy v7
  • 基于avsc编写的测试代码能正常处理元数据,但读取数据时始终抛出错误:Uncaught Error: snappy codec decompression error

我已准备好可复现的测试场景,希望有实际使用过新版Avro与Snappy实现读取的开发者帮忙解决这个问题。

环境信息

  • Node.js版本:[补充你的Node.js版本,如v18.17.0]
  • 依赖库版本:
    • avsc: ^5.7.7
    • snappy: ^7.2.2

测试代码示例

const fs = require('fs');
const avro = require('avsc');
const snappy = require('snappy');

async function readAvroFile(filePath) {
  const fileBuffer = fs.readFileSync(filePath);
  
  // 解析Avro文件头(元数据)
  const reader = avro.createFileDecoder(fileBuffer, {
    codec: (buf) => snappy.uncompress(buf)
  });

  try {
    for await (const record of reader) {
      console.log('读取到记录:', record);
    }
  } catch (err) {
    console.error('读取出错:', err);
  }
}

readAvroFile('./test-snappy.avro');

错误详情

Uncaught Error: snappy codec decompression error
    at ... [完整调用栈]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:00:57