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('文件变更');
});
});
}
由于没有测试环境,不知这段代码能否正常运行,效果是否符合预期。
另外如何才能监听多个文件(排除这种方案:监听共同路径,再过滤文件)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接监听的方案不可行,最终解决方案为连接FTP服务,通过对比文件的修改时间判断是否变更
自己开个虚拟机,跑ftp服务;监听多个文件,可以利用现成的npm包如
watchr
之类。