如何在 Node js 中对下载流进行哈希处理



我想知道如何使用 node js 对文件的下载流进行哈希处理

因为我想在存储到 mongo db 之前对文件进行哈希处理以避免重复,所以顺便说一下,我正在使用 mongo grid fs。 https://github.com/aheckmann/gridfs-stream

下载文件

var download = function (url, dest, callback) {
request.get(url)
.on('error', function (err) { console.log(err) })
.pipe(fs.createWriteStream(dest))
.on('close', callback);
};
final_list.forEach(function (str) {
var filename = str.split('/').pop();
console.log('Downloading ' + filename);
download(str, filename, function () { console.log('Finished Downloading' + "" + filename) });
});

function getHash(dest, filename) {
let crypto = require('crypto');
let hash = crypto.createHash('sha256').setEncoding('hex');
let fileHash = "";
let filePath = `${dest}/${filename}`
fs.createReadStream(filePath)
.pipe(hash)
.on('finish', function() {
fileHash = hash.read();
console.log(`Filehash calculated for ${filename} is ${fileHash}.`);
// insert into mongo db here
});
}

相关内容

最新更新