Я пытаюсь загрузить удаленное местоположение на FTP-сервере в свой локальный каталог. Я использовал модуль jsftp (https://github.com/sergi/jsftp) для этого, но у меня проблема.NodeJS загружает удаленный доступ к локальному FTP
В основном я пытаюсь рекурсивно загрузить всю удаленную папку, включая все подпапки и т. Д. Я сам пытался понять это, но пока не повезло.
до сих пор я пытался это:
var worker = {
ftp: null,
init: function() {
this.ftp = new JSFtp({
host: "localhost",
port: 21,
user: "username",
pass: "password"
});
this.ftp.auth("username", "password", function (result) {
if (typeof result !== "undefined") {
console.log("Something went wrong");
}
this.handleData();
}.bind(this));
},
handleData: function() {
recursive_get_files(this, "/");
}
};
function recursive_get_files(worker, dir) {
console.log("Getting directory: " + dir);
worker.ftp.ls(dir, function (err, res) {
res.forEach(function (file) {
if (file.type === 1) {
recursive_get_files(worker, dir + "/" + file.name);
} else {
worker.ftp.get(dir + "/" + file.name, "/downloads" + dir + "/" + file.name, function(err) {
if (err) {
console.log("Couldn't download file: " + file.name);
console.log(err);
}
}.bind(file.name));
}
});
});
}
Самая большая проблема, я думаю, что все эти функции получить становятся называется почти сразу после того, как друг с другом, и так как клиент, вероятно, не допускается чтобы вызвать так много вещей, он сломается.
Я видел модуль с именем ftpsync (https://www.npmjs.com/package/ftpsync), выполняющий некоторую удаленную синхронизацию, от локального до удаленного, но мне это нужно наоборот.
Кто-нибудь может мне помочь? Я весь этот день застрял = /.