Node.js - 如何使用偏移量流式传输 gzip 文件

问题描述

我有一个很大的 gzipped 文件(> 10 GB)。解压缩后,我只想访问未压缩文件的一小部分。 更特别的是,我知道我对未压缩文件感兴趣的相应偏移量和长度。

到目前为止,我尝试通过这种方式处理管道问题:

const fs = require('fs')
const zlib = require('zlib')

let readPartOfLargeCompressedFile = (path,offset,length) => {
    const unzippedStream = fs.createReadStream(path).pipe(zlib.createGunzip(),{ start: offset,end: offset + length })
    unzippedStream.on('data',(chunk) => console.log(chunk.toString()))
}

readPartOfLargeCompressedFile(path.resolve(__dirname,PATH_TO_LARGE_FILE),22777,62)

显然,这段代码不起作用,因为结果是在我的控制台中显示了整个未压缩的文件。 我对直播缺乏经验,所以我尝试了很多不同的东西,但都没有成功。

根据您的经验,这是可以做到的吗? 还是我必须对整个文件进行压缩,然后在未压缩的文件中更容易读取?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)