yauzl中无效的本地文件头签名错误

问题描述

我正在使用一个解压缩功能,该功能需要从远程目标读取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 (将#修改为@)