以编程方式将文件从 S3 存储桶移动到 Windows EC2,反之亦然
Programmatically move files from an S3 bucket to a Windows EC2 and vice-versa
我想将文件推送到 Windows EC2 并从我的 EC2 获取文件夹并将其存储在 S3 中。因为我有很多 EC2,所以我想自动执行此操作 - 我目前在 ECS 上有一个使用 ssh2-sftp-client 库的 Node.js 服务器。使用以下代码,我可以将文件推送到其中(同样,我可以从中提取文件并将其上传到 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 个用户试图同时推送服务器错误,因为它有太多活动的 SSH 连接。
有更好的方法吗?我想要做的就是 upload/download 使用 Node.js 的特定目录(对于 Windows EC2)。
在 EC2 上自动执行 运行 脚本的一个好方法是使用 SSM Run Command. If you set up each EC2 instance correctly, then it becomes a managed instance,您可以在 EC2 实例队列中触发 运行 脚本,由标签选择,例如。
我想将文件推送到 Windows EC2 并从我的 EC2 获取文件夹并将其存储在 S3 中。因为我有很多 EC2,所以我想自动执行此操作 - 我目前在 ECS 上有一个使用 ssh2-sftp-client 库的 Node.js 服务器。使用以下代码,我可以将文件推送到其中(同样,我可以从中提取文件并将其上传到 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 个用户试图同时推送服务器错误,因为它有太多活动的 SSH 连接。
有更好的方法吗?我想要做的就是 upload/download 使用 Node.js 的特定目录(对于 Windows EC2)。
在 EC2 上自动执行 运行 脚本的一个好方法是使用 SSM Run Command. If you set up each EC2 instance correctly, then it becomes a managed instance,您可以在 EC2 实例队列中触发 运行 脚本,由标签选择,例如。