Amazon web services 以编程方式将文件从S3存储桶移动到Windows EC2,反之亦然
我想将文件推送到WindowsEC2,并从我的EC2中获取文件夹并将其存储在S3中。因为我有很多EC2,所以我想实现自动化——我目前在ECS上有一个Node.js服务器,它使用库。通过以下代码,我能够将文件推入其中(类似地,我能够从中提取文件并将其上载到S3): 但这不是一个健壮的解决方案——即使我有5到6个用户试图同时推送服务器错误,因为它有太多的活动SSH连接Amazon web services 以编程方式将文件从S3存储桶移动到Windows EC2,反之亦然,amazon-web-services,amazon-s3,amazon-ec2,ssh2-sftp,ssh2-sftp-client,Amazon Web Services,Amazon S3,Amazon Ec2,Ssh2 Sftp,Ssh2 Sftp Client,我想将文件推送到WindowsEC2,并从我的EC2中获取文件夹并将其存储在S3中。因为我有很多EC2,所以我想实现自动化——我目前在ECS上有一个Node.js服务器,它使用库。通过以下代码,我能够将文件推入其中(类似地,我能够从中提取文件并将其上载到S3): 但这不是一个健壮的解决方案——即使我有5到6个用户试图同时推送服务器错误,因为它有太多的活动SSH连接 有更好的方法吗?我只想使用Node.js(对于Windows EC2)上传/下载特定目录。在EC2上自动运行脚本的一个好方法是使用N
有更好的方法吗?我只想使用Node.js(对于Windows EC2)上传/下载特定目录。在EC2上自动运行脚本的一个好方法是使用Node.js。如果您正确设置了每个EC2实例,那么它将成为一个,您可以触发通过标记选择的EC2实例组运行脚本。查看SSM Run命令。您可能希望在每台机器上使用
aws S3 sync
命令定期从S3“拉”出脚本。看:@jarmod谢谢你!SSM Run命令正是我所需要的。
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();
}
}