解压缩大文件(4GB以上)时,Node Archiver'Headers Error'

时间:2019-03-11 14:07:26

标签: node.js zip unzip 7zip node-archiver

下载大于4GB的文件时,无论是否带有'forceZip64'选项,我都收到Headers Error。 逐个流传输每个文件内容时,便会在旅途中生成zip。

如何创建zip文件

// create zip archive
const zip = Archiver.create('zip', {
    store: true
    // forceZip64: contentLength > 4 * 1024 * 1024 * 1024
});
// pipe zip to response
zip.pipe(response);

// iterate targets download
for (const files of file) {
   const stream = await this.downloadFile(file.source); // returns Readable
   zip.append(stream, { name: file.source.filename });

   // await to download files one by one.
   await new Promise((resolve, reject) => {
      // handle success
      stream.on('end', () => {
          resolve();
      });
      // handle error
      stream.on('error', (err) => {
          reject();
      });
   });
}

// finalize zip streaming
zip.finalize();

如何解压缩zip文件

使用7ZIP Ubuntu

  • 例如,当我下载一个大于4GB的文件,然后尝试使用7zip解压缩文件时,将得到以下输出:
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-7700T CPU @ 2.90GHz (906E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 15587398396 bytes (15 GiB)

Extracting archive: files.zip

ERRORS:
Headers Error

--
Path = files.zip
Type = zip
ERRORS:
Headers Error
Physical Size = 15587398396
64-bit = +

使用Unzip Mac OS和Ubuntu(2009年4月20日解压缩6.00)

  • 我不会收到任何错误

归档实用程序 Mac OS

  • “无法将'files.zip'扩展为'下载'。”
  • “(错误2-没有此类文件或目录)”

结果

解压缩程序始终可以运行, 7ZIP 抱怨标头,但最终它解压缩得很好,并且 Archive Utility (默认为Mac Os)无法解压缩文件

在所有情况下,MD5校验和都与原始校验和匹配。

有人用大于4GB(2 ^ 32B)的文件遇到这种问题吗?

我对4GB以下的zip所做的所有操作均成功完成,并且没有任何错误或警告。

0 个答案:

没有答案