Gulpを使用してファイルをSFTPでアップロードする方法を知りたい方に向けて、今回はgulp-sftpプラグインの使用方法を解説します。この記事では、必要なパッケージのインストールからGulpタスクの設定、セキュリティ対策までを詳しく説明します。
必要なパッケージのインストール
まず、Gulpとgulp-sftpをプロジェクトにインストールする必要があります。以下のコマンドを実行してください。
npm install --save-dev gulp gulp-sftp-up4
Gulpタスクの設定
次に、Gulpファイル(gulpfile.js)を設定します。以下は、特定のファイルをSFTPでリモートサーバーにアップロードする基本的な例です。
const gulp = require('gulp');
const sftp = require('gulp-sftp-up4');
// アップロードタスクの定義
gulp.task('upload', function () {
return gulp.src('src/**/*') // アップロードするファイルのパス
.pipe(sftp({
host: 'your.sftp.server',
port: 22, // デフォルトのSFTPポートは22
user: 'username',
pass: 'password',
remotePath: '/path/on/server' // リモートサーバー上のパス
}));
});
// デフォルトタスクの定義(必要に応じて)
gulp.task('default', gulp.series('upload'));
タスクの実行
設定が完了したら、以下のコマンドでタスクを実行します。
gulp upload
または、gulpコマンドを使用してデフォルトタスクを実行することも可能です。
gulp
セキュリティについて
パスワードを直接コードに記載するのはセキュリティ上良くないため、以下の方法を検討してください。
環境変数の使用
const gulp = require('gulp');
const sftp = require('gulp-sftp-up4');
gulp.task('upload', function () {
return gulp.src('src/**/*')
.pipe(sftp({
host: process.env.SFTP_HOST,
port: process.env.SFTP_PORT || 22,
user: process.env.SFTP_USER,
pass: process.env.SFTP_PASS,
remotePath: process.env.SFTP_REMOTE_PATH
}));
});
環境変数を設定する例
export SFTP_HOST='your.sftp.server'
export SFTP_USER='username'
export SFTP_PASS='password'
export SFTP_REMOTE_PATH='/path/on/server'
gulp upload
SSHキーの使用
パスワードの代わりにSSHキーを使用する場合は、keyオプションを追加します。
const gulp = require('gulp');
const sftp = require('gulp-sftp-up4');
gulp.task('upload', function () {
return gulp.src('src/**/*')
.pipe(sftp({
host: 'your.sftp.server',
port: 22,
user: 'username',
key: '/path/to/your/private/key', // SSHキーのパス
remotePath: '/path/on/server'
}));
});