Моя общая проблема: после того, как я отфильтровал файлы, которые были добавлены за последние 5 минут, я зацикливался на возвращенном массиве объектов. Оттуда я добавляю имя удаленного файла root к имени, возвращенному из файлов, добавленных за последние 5 минут. fastget ничего не записывает в мой локальный файл.
Я проверил добавленный маршрут за пределами l oop, и он работает, я по какой-то причине теряю данные моего обещания внутри l oop?
sftp
.connect({
host: "hostaddress",
port: 22,
username: "USERNAME",
password: "PASSWORD"
})
.then(() => {
return sftp.list(root);
})
.then(data => {
//filters new files in last 5 min
const filteredFile = data.filter(file => {
let currentDate = moment();
let CurrentTimeMinusFive = moment().subtract(5, "minutes");
let allAccessTimes = file.accessTime;
let parsedAccessTimes = moment(allAccessTimes);
let filteredTime = moment(parsedAccessTimes).isBetween(
CurrentTimeMinusFive,
currentDate
);
//returns boolean if the file has been added in the last 5 minutes
return filteredTime;
});
//returns full metadata in array of objects
console.log(filteredFile);
//not writing filedata from remote server to localfile
let localPath = "/Users/me/Desktop/DOWNLOADEDSFTP/data.txt";
filteredFile.forEach(file => {
let name = file.name;
return sftp.fastGet(
`remote-path/${name}`,
localPath
);
});
})
.then(() => {
sftp.end();
})
.catch(err => {
console.error(err.message);
});