使用节点js从ftp站点下载多个文件 [英] Downloading multiple file from ftp site using node js
问题描述
我试图从根文件夹下载ftp服务器上的每个文件。
我做的是这样 -
pre $ 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 ');
});
});
我已经成功登录并在ftp站点上验证了我的自我..... 这是我用async.mapLimit的代码块,它只能同时处理一个连接。 i am trying to download each file on ftp server from root folder.
what i did is this- but on running it gives me error- i have already successfully logged in and authenticated my self on ftp site.....
i don't know what to do please guide me. This is the chunk of code I used with async.mapLimit to make it work with only one connection concurrently.
这篇关于使用节点js从ftp站点下载多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
<但是在运行时会给我错误 -
$ p $ {[Error:connect ECONNREFUSED]
code:'ECONNREFUSED' ,
errno:'ECONNREFUSED',
syscall:'connect',
msg:'可能在尝试进行PASV操作时正在进行'
}
i不知道什么请指导我。
'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'
$ b $ var collectFiles = function(dir){
return new Promise(function(resolve,reject){
ftp.ls(dir +'/ *',function(err,如果(错误)拒绝(错误)
console.log(res)
var files = [];
res.forEach(function(file){
files.push(file.name)
});
resolve(files)
})
})
}
collectFiles(remote).then(function(files){
console.log(files)
async.mapLimit(files,1,function(file,callback){
console.log('尝试:'+ remote + file +' - >'+ local + file)
ftp.get(remote +'/'+ file,local +'/'+ file,function(err){
如果(err){
console.log('Error getting'+ file)
callback(err)
} else {
console.log('Got'+ file)
callback()
$ b})
},函数(err,res){
if(err){
console.log(err)
}
console.log('updates complete'+ res)
})
})
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'
}
'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)
})
})