Whoosh
Whoosh is an ultra thin wrapper for SFTPStream, with the additional benefit of being able to easily stream in memory content to/from an SFTP server.
API
connect(<params>, <cb>)
Connect to an sftp server
Whoosh.connect({
hostname: 'sftp.example.com',
port: 22,
username: 'fred',
password: 'secret'
}, (err, client) => {
})
See the ssh2 client docs for a full list of connection parameters
disconnect(<cb>)
Disconnect from an sftp server
Whoosh.connect(config, (err, client) => {
client.disconnect(() => {
// Disconnected
})
})
isConnected()
Returns true when connected to the SFTP server. Useful for checking whether a previously established connection has dropped.
Whoosh.connect(config, (err, client) => {
if (err) throw err
client.isConnected()
})
isConnected(<cb>)
Asynchronous version of isConnected
Whoosh.connect(config, (err, client) => {
if (err) throw err
client.isConnected((err, connected) => {
)}
})
getContent(<path>, [<options>], <cb>)
Streams the contents of a remote file to a variable
Whoosh.connect(config, (err, client) => {
if (err) throw err
client.getContent('some/remote/file', (err, content, stats) => {
client.disconnect(() => {
if (err) throw err
console.log(`Downloaded ${stats.bytes} bytes in ${stats.duration} ms`)
)}
})
})
The options parameter is is optional. When specified it is passed straight through to SFTPStream's createReadStream
method.
putContent(<content;>, <path>, [<options>], <cb>)
Streams the contents of a variable to a remote file
Whoosh.connect(config, (err, client) => {
if (err) throw err
client.putContent('some conent', 'some/remote/file', (err, stats) => {
client.disconnect(() => {
if (err) throw err
console.log(`Uploaded ${stats.bytes} bytes in ${stats.duration} ms`)
})
})
})
The options parameter is is optional. When specified it is passed straight through to SFTPStream's createWriteStream
method.
exists
Reports on whether a remote file exists
Whoosh.connect(config, function(err, client) {
if (err) throw err
client.exists('some/remote/file', (err, exists) => {
client.disconnect(() => {
if (err) throw err
console.log(exists ? 'File exists' : 'File does not exist')
)}
})
})
Everything else
The client
object is just a decorated instance of SFTPStream so all the other SFTP methods are available. e.g.
Whoosh.connect(config, function(err, client) {
if (err) throw err
client.unlink('some/remote/file', function(err) {
client.disconnect(() => {
if (err) throw err
console.log('Deleted some/remote/file')
})
})
})