我在我的下载文件夹上制作了一个监听服务器(Node.js)。
每当我下载文件时,我想要散列该文件。但事实上,尽管我的文件没有完全下载,但我的服务器立刻对它进行了哈希处理。并且哈希与两个不同的文件相同。
我该如何解决这个问题。
var watcher = chokidar.watch('/home/pack/Desktop/Windows-Share', {ignored:/(^|[\/\\])\../, persistent: true});
var log = console.log.bind(console);
watcher.on('add', function(path){
setTimeout(function(){
var base_name = path_module.basename(path);
var extension = base_name.split('.').pop();
console.log(base_name);
if(isMaliciousExtension(base_name) === 1){
getHash(path, function(returnhash){
findDB(mongo_url, returnhash, function(result){
if(result == 0){
logger.warn("File "+base_name+" khong co trong database, thuc hien luu lai.");
insertDB(mongo_url, returnhash);
createMSQLConn(dbhost, dbusername, dbpassword, dbname, function(con){
insertMYSQLNewFile(con, 1, base_name, extension, returnhash);
getId(path, function(id){
var myvar = setInterval(function(){
getFileStatus(id, function(rs){
console.log(rs);
if(rs == "reported")
{
logger.info("File "+base_name+" da duoc report.");
clearInterval(myvar);
getReport(id, function(report){
var score = getScore(report);
//console.log(score["info"]["score"]);
if(score["info"]["score"] >= 4.5) {
deleteFile(path, function(err){
if(err)
throw err;
updateMYSQLFileStatus(con, returnhash);
});
}
else {
logger.info("File "+base_name+" an toan.");
}
});
}
else
logger.warn("File "+base_name+" dang duoc phan tich.");
});
},5000);
});
});
}
else {
logger.info("File "+ base_name + " da duoc tai ve truoc day.!");
}
});
});
} else {
return 0;
}
},5000);
}).on('unlink', path => log(`File ${path} has been removed`));