微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。