我想下载文件时要达到的目的是要分块下载或访问它。然后我想检查文件的大小并下载文件的第一个kb,然后将第一个kb的哈希与哈希进行比较如果大小和哈希值相同,则拒绝下载的文件(大小相同),然后拒绝下载,否则继续下载文件。知道如何将其集成到下面的当前代码实现中,谢谢。
var queue = new Queue("my-queue", "redis://127.0.0.1:6379/0");
queue.add({ final_list: final_list });
queue.process(function processor(job, done) {
var final_list = job.data.final_list;
var promises = [];
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);
promises.push(new Promise(function p(resolve, reject) {
download(str, './public/server/img/' + filename, function () {
console.log('Finished Downloading' + " " + filename);
resolve(filename);
}); // add error callback also, call reject() on error
}
));
});
Promise.all(promises)
.then(function d(filenames) {
done(null, filenames);
})
.catch(function e(error) {
done(error);
})
});