问题描述
我正在使用一个解压缩功能,该功能需要从远程目标读取zip文件,解压缩内容,然后通过网络将这些文件创建到目标。我正在将yauzl与RandomAccessReader方法一起使用,以读取传入的流并发布事件。
const zipQueue = [];
const yauzl = new Yauzl(reader);
const zipfile = yauzl.fromrandomAccessReader(this,this.contentLength,{ lazyEntries: true,autoclose: false});
zipfile.on('entry',function(entry){
zipQueue.push(entry);
zipfile.readEntry();
}).on('end',function() {
for(const entry of zipQueue) {
if(/\/$/.test(entry.fileName)) {
this.emit('directory');
} else {
const readStream = zipfile.openReadStream(entry);
this.emit('file');
}
}
})
我以正确的格式获取了zipfile和入口对象,但是当我尝试使用zipfile.openReadStream()
打开readStream时,它在经过30个奇数输入后失败了invalid local file header signature: 0x8074b50
。我怀疑这与比赛条件有关。是否还有其他提供类似解决方案的npm软件包?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)