当前位置 : 主页 > 网络编程 > JavaScript >

javascript node ftp client

来源:互联网 收集:自由互联 发布时间:2021-06-30
javascript node ftp client // 插件地址,详细看下方法和参数:// https://github.com/mscdex/node-ftp// 导入包let Client = require('ftp');let fs = require('fs');// 配置信息,可以由java生成let config = { "host":"192.1
javascript node ftp client
// 插件地址,详细看下方法和参数:
// https://github.com/mscdex/node-ftp

// 导入包
let Client = require('ftp');
let fs = require('fs');

// 配置信息,可以由java生成
let config = {
  "host":"192.168.0.190",
  "port":21,
  "user":"www",
  "password":"www"
};

// 创建一个ftp客户端对象
let c = new Client();
c.on('ready', function() {
  // 获取文件列表
  c.list(function(err, list) {
      if (err) throw err;
      console.dir(list);
      c.end();
  });

  // 下载一个文件
  // 在stream中可以获取进度,见stream.on data
  c.get('cdms/004.jpg', function(err, stream) {
      if (err) throw err;
      // buffer为获取的缓冲区块
      let progress = 0
      stream.on('data', buffer => {
            progress += buffer.length
            // 这里可以计算下百分比,我这里直接输出大小了
            console.log(progress);
      })
      stream.once('close', function() { c.end(); });
      stream.pipe(fs.createWriteStream('004.jpg'));
  });

  // 上传一个文件
  // 直接指定一个文件路径,无法获取进度
  // 要获取进度需要用到Readable,参考上面get写法
  // Readable对应于Java中的InputStream和Reader两个类
  c.put('004.jpg', 'cdms/new.jpg', function(err) {
      if (err) throw err;
      c.end();
  });
});

// 开始连接
c.connect(config);
网友评论