尝试为 clamAV 指定二进制路径

问题描述

我正在尝试在 NodeJS 中的 Windows 10 pro 机器上使用 clamscan。 Clamscan 安装到

C:\Program Files\ClamAV

我有这个代码..

const NodeClam = require('clamscan');  

const ClamScan = new NodeClam().init({   
    scan_recursively: false,clamdscan: {                
        path: 'C:\Program Files\ClamAV\clamscan.exe',local_fallback: true,config_file: 'C:\Program Files\ClamAV\clamd.conf'
    },});


async function scanFile(filePath) {
    try {
        const clamscan = await ClamScan;
        const { is_infected,viruses } = await clamscan.scan_file(filePath);

        if (is_infected) {
            console.log(`The file is INFECTED with ${viruses}`);
            throw new Error('ERR_FILE_SCAN_INFECTED');
        } else {
            return 'CLEAN';
        }
    } catch (err) {
        throw new Error(err);
    }
  }


  function start() {
    return scanFile('/dodgyfile.rtf');
  }
  
  // Call start
  (async() => {    

    try{
    await start();
    }
    catch(err){
        console.log("error: ",err);
    }    
    
  })();

我收到错误.. 没有有效和活动的病毒扫描二进制文件处于活动和可用状态,并且没有提供主机/套接字选项!

网上的所有配置示例似乎都是针对linux路径的..

有没有人有在 Windows 上使用它的经验?谢谢

解决方法

我自己也遇到了同样的问题。这里的问题在于文件本身的路径,\Program Files 中的空格导致错误。

我没有找到任何快速修复方法,所以我决定使用 ClamAV 的 Win64 便携式版本,可以在其网站上的 Win64 部分下载。

提取路径中没有空格的文件夹中的内容为我解决了问题。