nodejs如何实现监听FTP服务器上的文件变更?

想实现一个功能,通过本地运行nodejs,便能连接登录远程的FTP服务器,并监听其文件的变更。

let ftp = require('ftp');
let watch = require('watch');
let config = reuqire('./config');
let ftpServer = new ftp();

main();

async function main () {
    await connectFtp();
    createMonitor();
}

// 连接FTP服务器
function connectFtp () {
    ftpServer.connect({
        host: config.ftpHost,
        user: config.ftpUser,
        password: config.ftpPassword
    });

    return new Promise(resolve => {
        ftpServer.on('ready', resolve);
    });
}

// 监听FTP文件上的变更
function createMonitor () {
   watch.createMonitor(config.ftpFilePath, monitor => {
        monitor.on('changed', () => {
            console.log('文件变更');
        });
    });
}

由于没有测试环境,不知这段代码能否正常运行,效果是否符合预期。
另外如何才能监听多个文件(排除这种方案:监听共同路径,再过滤文件)。

阅读 3.1k
2 个回答

直接监听的方案不可行,最终解决方案为连接FTP服务,通过对比文件的修改时间判断是否变更

自己开个虚拟机,跑ftp服务;监听多个文件,可以利用现成的npm包如watchr之类。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题