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

博客介绍了在Node.js和npm环境下实现FTP通信的方法。借助特定包可进行FTP通信,将其封装成Promise形式更便于使用。文中展示了安装步骤和实现代码,能获取连接目录下的文件列表,还提及后续将介绍文件上传相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 で呼び出せる。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值