使用node js从ftp站点下载多个文件

2024-02-15

我正在尝试从根文件夹下载 ftp 服务器上的每个文件。 我所做的是这样的-

ftpClient.ls(".", function(err, res) {
      res.forEach(function(file) {
          console.log(file.name);

            ftpClient.get("./"+file.name, 'D:/styleinc/ftp/'+file.name, function(hadErr) {
                if (hadErr)
                  console.log(hadErr);
                else
                  console.log('File copied successfully!');

      });
    });

但在运行时它给了我错误-

{ [Error: connect ECONNREFUSED]
   code: 'ECONNREFUSED',
   errno: 'ECONNREFUSED',
   syscall: 'connect',
   msg: 'Probably trying a PASV operation while one is in progress' 
  }

我已经成功登录并在 ftp 站点上验证了我的身份...... 我不知道该怎么办,请指导我。


这是我与 async.mapLimit 一起使用的代码块,使其仅同时与一个连接一起工作。

'use strict'

var JSFtp = require('jsftp');
var inspect = require('util').inspect;
var fs = require('fs');
var async = require('async');

var ftp = new JSFtp(require('./util/ftp'))
var local = 'EDI/mohawk/OUTBOX/'
var remote = 'OUTBOX'

var gatherFiles = function(dir){
  return new Promise(function(resolve, reject){
    ftp.ls(dir + '/*', function(err, res) {
      if (err) reject(err)
      console.log(res)
      var files = [];
      res.forEach(function(file){
        files.push(file.name)
      });
      resolve(files)
    })
  })
}

gatherFiles(remote).then(function(files){
  console.log(files)
  async.mapLimit(files, 1, function(file, callback){
    console.log('attempting: ' +remote + file + '->' + local + file)
    ftp.get(remote +'/'+ file, local +'/'+ file, function(err){
      if(err){
        console.log('Error getting ' + file)
        callback(err)
      }else{
        console.log('Got ' + file)
        callback()
      }

    })
  }, function(err, res){
    if(err){
      console.log(err)
    }
    console.log('updates complete' + res)   
  })
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用node js从ftp站点下载多个文件 的相关文章

随机推荐

  • 日语 Unicode 字体

    我正在创建一个游戏 我有一些带有文本的用户界面 最近我们想添加日语版本 但我遇到字体问题 我使用 stb freetype 来光栅化字体 并且我支持 Unicode 所以这应该不是问题 但大多数字体似乎不包含日语字符 在 Windows 上
  • 将 boost::shared_lock 升级为独占锁

    有人可以解释一下 boost upgrade lock 的正确用法吗 下面的代码会导致死锁 Global typedef boost shared mutex Mutex typedef boost shared lock
  • 在Python中从其他文件调用变量

    我正在尝试导入文件 情况如下 file1 py 包含 from file2 import username steven action file2 py 包含 def action print username 但我无法打印用户名 因为变量
  • 如何:响应式可用 Wcf 双工通信

    我正在开发一个使用 WCF 在服务器和客户端之间进行通信的应用程序 服务器具有不断变化的服务数量 以及一项主服务 客户端可以查询有关其他服务的信息 然后使用主服务中的信息订阅他们想要的服务 当子服务发生更改 添加 删除等 时 主服务向订阅客
  • 当当前输入有值时如何前进到下一个表单输入?

    我有一个包含很多条目的表格 在当前文本框中输入值后 我想将焦点更改为下一个文本框 并希望继续此过程直到最后一个字段 我的问题是 一旦我在文本框中输入值 是否可以通过 JavaScript 编码模拟按 Tab 键时发生的情况 在不按键盘上的
  • [innerHTML] 内的 Angular routerLink

    我一直在寻找一种方法 使标准 a href 链接在动态加载到 innerHTML 中时能够像 routerLinks 一样工作 它似乎不是标准的东西 我找不到任何可以满足我需要的东西 我有一个可行的解决方案 但想知道是否有人知道更好的方法来
  • 定义 XML 架构 (XSD) 时“选择”“组”元素是否有效

    定义 XML 架构 XSD 时 选择 组 元素是否有效 即以下有效
  • Google Hangouts API:我可以发起“直播”环聊吗?

    有没有办法通过 API 发起 直播 环聊 我已经创建了我的应用程序并且运行良好 但是我需要为我的客户提供环聊的嵌入代码 我似乎找不到任何有关如何通过环聊按钮启动此类环聊的文档 https developers google com hang
  • 如何快速获取本周星期一的日期

    我正在尝试获取本周星期一的日期 在我的表格视图中 这被视为一周的第一天 我还需要获取本周的星期日 在我的表视图中 这被视为一周的最后一天 目前的尝试 let date NSDate let calendar NSCalendar curre
  • 当找到预期结果时是否可以从 lambda 中中断

    我是Python新手 刚刚对Lambda表达式非常感兴趣 我遇到的问题是使用 lambda 过滤器从元素列表中找到一个且仅有一个目标元素 理论上 当找到目标元素时 就没有再继续下去的意义了 With for loop这很简单break循环
  • jQuery Jcrop setSelect 直观显示,但是点击移动时会跳转

    我正在使用 jQuery 插件 Jcrop 我对名为 setSelect 的初始设置之一有疑问 该属性接受一个包含两组 x 和 y 坐标 左上角和右下角 的数组 img src blah
  • 如何让输出显示在 Visual Studio 2005 错误列表的“消息”窗格中?

    我有一个像这样的头文件 ifndef GEN NOTE MARKERS TO DEVELOPERS HPP define GEN NOTE MARKERS TO DEVELOPERS HPP ifdef DEBUG macros for t
  • 如何在 DRF 中序列化通用外键

    我有带有通用外键的模型 我想序列化该模型 model py class AddressType models Model content type models ForeignKey ContentType object id models
  • 使用调试器 gdb 时未知的结束信号

    我已经在 Mac OS X 上安装了 GDB 为了测试它是否有效 我使用了以下 C 程序 include
  • 为所有实体设置默认分配大小?

    我想将默认设置为 50 的默认 AllocationSize 设置为另一个值 有没有办法做到这一点 我更喜欢使用默认的 JPA 来执行此操作 但 Eclipselink 也可以 我不想在我使用的每个实体中指定分配大小 TableGenera
  • 如何使用 AntiXss 库正确清理内容?

    我有一个简单的论坛应用程序 当有人发布任何内容时 我会 post Content Sanitizer GetSafeHtml post Content 现在 我不确定我是否做错了什么 或者发生了什么 但它不允许几乎没有 html 甚至简单
  • System.Data.SqlClient.SqlException:“关键字“Table”附近的语法不正确。”

    我正在尝试使用 Windows 窗体 C 创建一个登录系统 但它给了我一个错误 我正在使用 MySQL 数据库和来自 youtube 的教程 我不知道出了什么错误 该项目包含三个表单 登录表单 注册表单和主程序表单 using System
  • 设置带有条件的标题属性并使用角度翻译

    我在某些条件下使用标题属性 我的代码是 li title span pack details span li 当管理员为真时 它会显示购买许可证包 但是如何使用翻译过滤器将 1 变为 i18n 键 我试过这个 li title span p
  • 无法使用 Azure DevOps Pull 请求对构建错误进行排队

    我想在拉取请求开始合并之前触发构建 在 Azure DevOps 中 对于此选项 我在分支策略下添加了构建验证 但是 如果我创建了一个新的拉取请求 我会收到 无法对构建进行排队 的消息 请任何人告诉我我选择的选项解决了我的要求 如果是 如何
  • 使用node js从ftp站点下载多个文件

    我正在尝试从根文件夹下载 ftp 服务器上的每个文件 我所做的是这样的 ftpClient ls function err res res forEach function file console log file name ftpCli