Я хочу записать sh файлы в Windows EC2, а также получить папки из моего EC2 и сохранить их в S3. Поскольку у меня много EC2, я хотел автоматизировать это - у меня в настоящее время есть сервер Node.js в ECS, который использует библиотеку ssh2-sftp-client . С помощью следующего фрагмента кода я могу вставить туда sh файлы (аналогично, я могу извлечь из него файлы и загрузить его на S3):
var Client = require('ssh2-sftp-client');
var sftp = new Client(newClientID);
sftp.connect({
host: host,
username: 'username',
password: 'password',
port: '22',
tryKeyboard: true
}).then(async () => {
try {
if (file.filename && file.file) {
await sftp.put(file.file, `C:/Users/user/Desktop/${file.filename}`);
console.log(`Successfully pushed ${file.filename}`);
}
sftp.on('error', error => {
console.log(error);
sftp.end();
});
resolve();
} catch (ex) {
console.log("SFTP EXCEPTION PUSHING FILES TO INSTANCE", ex);
} finally {
sftp.end();
}
}
Но это не так надежное решение - даже когда у меня 5 или 6 пользователей, которые пытаются одновременно выполнить sh, сервер выдает ошибки, потому что у него слишком много активных S SH соединений.
Есть ли лучший способ сделать это? Все, что я хочу сделать, это загрузить / загрузить указанные каталоги c, используя Node.js (для Windows EC2).