Description
node-ftp-client is a wrapper for the popular FTP client module for node.js - node-ftp, which provides an easy way of manipulating FTP transfers.
Requirements
- node.js -- v0.8.0 or newer
Dependencies
Installation
npm install ftp-client
Usage
Initialization
To crate an instance of the wrapper use the following code:
var ftpClient = client = config options;
where config
contains the ftp server configuration (these are the default values):
host: 'localhost' port: 21 user: 'anonymous' password: 'anonymous@'
and the options
object may contain the following keys:
- logging (String): 'none', 'basic', 'debug' - level of logging for all the tasks - use 'debug' in case of any issues
- overwrite (String): 'none', 'older', 'all' - determines which files should be overwritten when downloading/uploading - 'older' compares the date of modification of local and remote files
Connecting
After creating the new object you have to manually connect to the server by using the connect
method:
client;
And passing the callback which should be executed when the client is ready.
Methods
- download(< String > remoteDir, < String > localDir, < Object > options, < Function > callback) - downloads the contents
of
remoteDir
tolocalDir
if both exist, and executes thecallback
if one is supplied with the following object as a parameter:
downloadedFiles: filename errors: filename: error
options
is an object with the following possible keys
* overwrite (String): 'none', 'older', 'all' - determines which files should be overwritten
- upload(< mixed > source, < String > remoteDir, < Object > options, < Function > callback) - expands the
source
paths using the glob module, uploads all found files and directories to the specifiedremoteDir
, and executes thecallback
if one is supplied with the following object as a parameter:
uploadedFiles: filename uploadedDirectories: dirname errors: filename/dirname: error
source
can be a string or an array of strings, and
options
is an object with the following possible keys
* overwrite (String): 'none', 'older', 'all' - determines which files should be overwritten
* baseDir (String) - local base path relative to the remote directory, e.g. if you want to upload file
uploads/sample.js
to public_html/uploads
, baseDir has to be set to uploads
Examples
In this example we connect to a server, and simultaneously upload all files from the test
directory, overwriting only
older files found on the server, and download files from /public_html/test
directory.
var ftpClient = config = host: 'localhost' port: 21 user: 'anonymous' password: 'anonymous@' options = logging: 'basic' client = config options; client;
TODO
- Methods chaining
- Queuing downloads/uploads with async in a single session
- Connecting in constructor, with possibility to end the connection manually