ssh2-sftp v1.0.0
ssh2-sftp
SFTP client for node.js.
Requirements
- node.js -- v0.8.0 or newer
Dependencies
Installation
npm install ssh2-sftpClient Examples
ex. dirs:
node-sftp
|- /build
|- index.html
|- page.html
|- /static
|- /js
|- index.js
|- page.js
|- /css
|- index.css
|- page.css
|- /downconnect
const Sftp = require('ssh2-sftp');
var client = new Sftp({
"host": "192.168.1.1",
"port": 22,
"user": "root",
"password": "root",
"privateKey": fs.readFileSync('/.ssh/id_rsa') // password or privateKey
});
client.connect(callback);upload
Upload from local dirs: static in ./build to remote SFTP: /node-sftp/build.
client.connect(() => {
let options = {
source: 'static', // ex. static static/js static/js/index.js
localPath: './build',
remotePath: '/node-sftp/build'
};
client.download(options, callback);
});
/* Remote SFTP dirs output:
* node-sftp
* |- /build
* |- /static
* |- /js
* |- index.js
* |- page.js
* |- /css
* |- index.css
* |- page.css
*/download
Download from romate SFTP: static in /node-sftp/build to local: ./down.
client.connect(() => {
let options = {
source: 'static', // ex. static static/js static/js/index.js
localPath: './down',
remotePath: '/node-sftp/build'
};
client.download(options, callback);
});
/* Local dirs output:
* node-sftp
* |- /build
* |- ...
* |- /down
* |- /static
* |- /js
* |- index.js
* |- page.js
* |- /css
* |- index.css
* |- page.css
*/Client Usage
Initialization
To create an instance of the wrapper use the following code:
var sftpClient = require('ssh2-sftp'),
client = new sftpClient(config);config containers the sftp server configuration:
- host - string - Hostname or IP address of the server. Default:
'localhost' - port - integer - Port number of the server. Default:
'localhost' - user - string - Username for authentication.
- password - string - Password for password-based user authentication.
- privateKey - mixed - Buffer or string that contains a private key for either key-based or hostbased user authentication (OpenSSH format).
Connecting
After creating the new object you have to manually connect to the server bt using the connect method:
client.connect(callback);And passing the callback which should be executed when the client is ready.
Methods
upload(< Object > options,< Function > callback) - expand the
options.sourcepaths using the glob module, upload all found files and directories to the specifiedoptions.remotePath, and passing the callback which should be executed after the client uploaded successfully.optionscan have the following properties:* **source** - string - The `source` which should to be uploaded, if not set `source` , upload all of files and directories. Supports files and directories. **Default:** `''` * **localPath** - string - The local directory which should to be uploaded. * **remotePath** - string - The remote sftp directory which should to be received.download(< Object > options,< Function > callback) - downloads the contents of
options.remotePathtooptions.localPathif both exist, and passing the callback which should be executed after the client downloaded successfully.optionscan have the following properties:* **source** - string - The `source` which should to be downloaded. Supports files and directories, if not set `source` , download all of files and directories. **Default:** `''` * **localPath** - string - The local directory which should to be received. * **remotePath** - string - The remote sftp directory which should to be downloaded.