ftp-watcher

0.0.6 • Public • Published

ftp-watcher

Watch an FTP server for file and directory tree changes.

NPM

Install

npm install --save ftp-watcher

Run tests

npm run test

Usage

Create a new FtpWatcher instance and pass an options object with properties ftpCredentials and cron. Since ftp-watcher depends on the popular FTP client module ftp, the ftpCredentials must match the options object that can be passed to ftp's ftp.connect() method.

Calling watch() on the new ftp-watcher instance causes it to emit 'snapshot' events with a frequency set by the passed cron expression. Each 'snapshot' event contains an array of path strings representing a complete snapshot of the FTP server's directory tree. A fileExtension and/or fileNameContains string can be passed optionally to filter the emitted snapshots. An ftp-watcher instance can be stopped by calling its stop() method.

const FtpWatcher = require('../src/index')
 
const ftpCredentials = {
  host: 'speedtest.tele2.net' // a public FTP test server
  // port: defaults to 21
  // user: defaults to anonymous
  // password: anonymous@
}
 
const speedtestWatcher = new FtpWatcher({
  ftpCredentials: ftpCredentials,
  cron: '*/10 * * * * *'
  // fileExtension: '.zip', // optional
  // fileNameContains: 'GB' // optional
})
 
speedtestWatcher.on('error', handleError)
speedtestWatcher.on('snapshot', handleSnapshot)
 
function handleSnapshot (snapshot) {
  console.log(snapshot)
  // speedtestWatcher.stop()
}
 
function handleError (error) {
  console.error(error)
}
 
speedtestWatcher.watch()

Todos

  • Add more tests

Copyright and license

Copyright 2016 Matthias Munder.
Licensed under the MIT license.

js-standard-style

Readme

Keywords

Package Sidebar

Install

npm i ftp-watcher

Weekly Downloads

9

Version

0.0.6

License

MIT

Last publish

Collaborators

  • mcmunder