使用adm-zip获取zip中的条目的md5校验和

时间:2016-07-03 11:04:48

标签: node.js zip

我正在尝试为ZIP文件中的所有文件获取MD5校验和。我目前正在使用adm-zip,因为我读过我可以将zip内容读入内存而无需将文件提取到磁盘。但我无法读取ZIP文件中的条目数据。我的代码如下:

var zip = new AdmZip(path);
zip.getEntries()
    .map(entry => { console.log(entry.entryName, entry.data); });

可以阅读entryName,因此打开和阅读zip工作。但data总是undefined。我读到data不是真正读取条目数据的方法,但我不确定如何实际读取它。

1 个答案:

答案 0 :(得分:0)

要读取条目的数据,必须调用条目对象的方法getData(),该方法返回Buffer。以下是更新后的代码片段:

var zip = new AdmZip(path);
zip.getEntries().map(entry => {
  const md5Hash = crypto.createHash('md5').update(entry.getData()).digest('hex');
  console.log(md5Hash);
});

我使用基本crypto模块生成md5哈希(十六进制格式)。不要忘记将其添加到文件顶部的需求列表中:const crypto = require('crypto');