您认为将客户端的“企业”数据放入 AWS S3 的最佳选择是什么,以便我们可以提供 Heroku 托管的 SaaS?
数据量很小,只是每日电子表格/csv 记录。但为了提供 SaaS 解决方案,我们需要将数据从客户端计算机传输到 S3,以供我们的 Heroku 应用程序使用。这显然应该是一个自动化、安全的过程。
我知道的可能的选择有:
通过 cloudgates.net 或 cyberduck.io 等服务以 SFTP 方式传输文件 - 但这需要以某种方式设置调度程序,而且似乎不够灵活。
使用 AWS Storage Gateway 将文件从隔离机器移动到 S3。这可能行不通,因为内部 IT 人员可能无法安装 VM、配置网关等等。
“适用于 Amazon S3 的 Oracle 安全备份云模块” 如果我们可以让客户创建一个 Oracle 数据库,将我们每天需要的数据放在其中,Oracle RMAN 可以将其发送到 S3。但是我们希望在 S3 中存储纯文本文件,而不是 Oracle 数据库,因此这可能没有意义(因为我们有一个 Heroku 应用程序,而不是带有 Oracle 的 EC2 实例)。
在我看来,自动数据上传的唯一合适方法是使用AWS 开发工具包以 Java 或 .Net 编写,运行在客户端机器上。如果内部 IT 人员不习惯维护,尤其是安全方面,那么就会出现问题。
我想在这里问一下,以防我遗漏了一个简单的选项,这个选项比 Bob 帐户每天早上通过我们的 Heroku 应用程序将文件上传到 S3 有所改进?
答案1
我使用 SSH (SFTP) 执行类似任务。确保安全的步骤如下:
- 根据您的上传需求生成客户端证书并将其安装在您
.ssh/authorized_keys
或 S3 实例上。 - 将
sftp -i <public key> <file> <remote location>
文件拖放到您需要的位置。 - 将上面第 2 步中的命令放入 cron 作业中 - 然后开始玩耍。
对于我来说,在几乎所有需要临时连接到服务器的情况下,这都非常有效。如果您使用的是 Windows,那么使用 Putty 以及 Puttygen、Plink 和 Windows 调度程序服务来实现类似的目的应该是可能的。
您必须使用调度程序才能使此方法工作 - 我实际上认为这比编写脚本或自行安排时间的东西要简洁得多。使用所有这些标准位也使其他人更容易理解这种想法。
编辑:亚马逊有一个关于证书位的友好指南这里。