如何从节点js或javascript中的流中获取文件的哈希或校验和
[我试图从服务器获取文件的校验和或哈希,而不是将整个文件下载到服务器或将其写入磁盘,就像从服务器读取数据,然后获取哈希值。
代码
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 generateChecksum(str, algorithm, encoding) {
return crypto
.createHash(algorithm || 'md5')
.update(str, 'utf8')
.digest(encoding || 'hex');
}
回答如下:来自Node的加密模块的哈希对象是可写的流。您可以直接通过管道传递给它们,例如: