Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 以编程方式将文件从S3存储桶移动到Windows EC2,反之亦然_Amazon Web Services_Amazon S3_Amazon Ec2_Ssh2 Sftp_Ssh2 Sftp Client - Fatal编程技术网

Amazon web services 以编程方式将文件从S3存储桶移动到Windows EC2,反之亦然

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

我想将文件推送到WindowsEC2,并从我的EC2中获取文件夹并将其存储在S3中。因为我有很多EC2,所以我想实现自动化——我目前在ECS上有一个Node.js服务器,它使用库。通过以下代码,我能够将文件推入其中(类似地,我能够从中提取文件并将其上载到S3):

但这不是一个健壮的解决方案——即使我有5到6个用户试图同时推送服务器错误,因为它有太多的活动SSH连接


有更好的方法吗?我只想使用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();
                }
            }