promise-ftp を使って FTP 接続先のファイル一覧を取得してみる

Node.js・npm でも FTP 通信ができるのじゃ。

node-ftp というパッケージで、FTP 通信ができる。このパッケージをラップして Promise 化したのが promise-ftp だ。

node-ftp および promise-ftp は FTP コマンドがひととおり使えるので、今回は接続先のディレクトリ配下のファイル一覧を取得してみようと思う。

promise-ftp のインストールは以下のとおり。

$ npm i -D promise-ftp

以下のように ftp.js を実装する。

// FTP 接続先情報
const user     = 'user';
const password = 'password';
const host     = 'example.com';

const PromiseFtp = require('promise-ftp');
const promiseFtp = new PromiseFtp();

promiseFtp.connect({
  user    : user,
  password: password,
  host    : host
})
  .then((serverMessage) => {
    // serverMessage は応答するサーバの場合にのみ返される
    console.log('Connected', serverMessage);
    // 「html-dir/」ディレクトリに移動する
    return promiseFtp.cwd('html-dir');
  })
  .then((currentDir) => {
    console.log('Change Working Directory', currentDir);
    // カレントディレクトリのファイル一覧を取得する
    return promiseFtp.list();
  })
  .then((list) => {
    console.log('Directory Listing');
    // 一覧表示
    console.dir(list);
    // 切断
    return promiseFtp.end();
  })
  .then((endResult) => {
    // endResult は false なら正常終了
    console.log('End', endResult);
  })
  .catch((error) => {
    console.log('Error', error);
  });

Promise で書けるのでコールバック地獄に陥らず、見通しが良い。

ファイル一覧となる変数 list は、オブジェクトの配列が返されるので、console.dir()を使用して表示させた。この辺はお好みで整形すれば良いかと。

実行する際は

$ node ftp.js

とすれば良い。package.json の "scripts" にこのまま書けば npm run で呼び出せる。

本パッケージを利用してアップロードなんかもできるが、アップロードに関してはより簡潔に行えるパッケージがあるので、次回と次々回に解説する。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值