ElectronでSFTPを通じてファイルをアップロードしたい場合の方法です。
npmモジュールを追加します。
spawn
とかつかってShellコマンドを操作するでもいいですが、簡単な方法としてはssh2
モジュールがおすすめです。ただし、素のssh2
だとリモート側でのmkdirが用意されていないようでしたので、今回はssh2
のラッパーであるssh2-sftp-client
を使って、ディレクトリ作成を含んだSFTPアップロードの方法をご紹介します。
インストール
npm i ssh2-sftp-client --save
使い方
function upload () {
let Client = require('ssh2-sftp-client');
let sftp = new Client();
var localPath = home + '/Gene/gene/themes/index.html';
var remotePath = 'Your remote dir // e.g./home/user/www/dir/sample/';
var remoteFilePath = remotePath + 'File name // e.g. index.html';
sftp.connect({
host: 'Your ftp host',
port: 22, // Port
username: 'Your user name',
password: 'Your password'
}).then(() => {
return sftp.mkdir(remotePath, false);
}).then(() => {
return sftp.put(localPath,remoteFilePath, true);
}).then((data) => {
console.log("Success!!");
}).catch((err) => {
console.log(err, 'Error!!');
});
}
以上です。