Whoosh
Whoosh is an ultra thin wrapper for SFTPStream. It's so thin that there's not much point using it unless you want to stream in memory content to/from an SFTP server.
Usage
Connecting
Whoosh.connect({
hostname: 'sftp.example.com',
port: 22,
username: 'fred',
password: 'secret'
}, function(err, whoosh) {
})
See the ssh2 client docs for a full list of connection parameters
What can I do with whoosh?
isConnected (sync)
Whoosh.connect(config, function(err, whoosh) {
if (err) return bail(err)
assert.ok(whoosh.isConnected())
whoosh.disconnect(function() {
assert.ok(!whoosh.isConnected())
)}
})
isConnected (async)
Whoosh.connect(config, function(err, whoosh) {
if (err) return bail(err)
whoosh.isConnected(function(err, connected) {
assert.ok(connected)
whoosh.disconnect(function() {
whoosh.isConnected(function(err, connected) {
assert.ok(!connected)
})
})
)}
})
getContent
Streams the contents of a remote file to a variable
Whoosh.connect(config, function(err, whoosh) {
if (err) return bail(err)
whoosh.getContent('some/remote/file', options, function(err, content, stats) {
whoosh.disconnect(function() {
if (err) return bail(err)
console.log('Downloaded ' + stats.size + ' bytes in ' + stats.duration + 'ms')
)}
})
})
The options parameter is is optional. When specified it is passed straight through to SFTPStream's createReadStream
method.
putContent
Streams the contents of a variable to a remote file
var content = 'my content'
Whoosh.connect(config, function(err, whoosh) {
if (err) return bail(err)
whoosh.putContent('some/remote/file', content, options, function(err, stats) {
whoosh.disconnect(function() {
if (err) return bail(err)
console.log('Uploaded ' + stats.size + ' bytes in ' + stats.duration + 'ms')
})
})
})
The options parameter is is optional. When specified it is passed straight through to SFTPStream's createWriteStream
method.
Everything else
The whoosh
object is just a decorated instance of SFTPStream so all the other SFTP methods are available. e.g.
Whoosh.connect(config, function(err, whoosh) {
if (err) return bail(err)
whoosh.unlink('some/remote/file', function(err) {
whoosh.disconnect(function() {
if (err) return bail(err)
console.log('Deleted some/remote/file')
})
})
})