这里是我能想到的,但不知道这是最好的方式不同的方式把它们以EC2 Linux实例:检索文件和使用Java
- 建立在Java中使用GetObject一个控制台应用程序在AWS Java SDK提供。使用s3 sync。
- 使用SNS> Lambda。使用REST API。
- 使用SNS> HTTPS (Java Servlet)。
性能很重要,因为我可能需要将许多变量大小的文件拉到linux实例。
我在选项1中看到的问题是我需要进行某种轮询行为。
使用选项2我不知道(a)是否需要定期运行此命令,或者它是否一直运行同步文件(b)如果它只运行一次,如何将它包装在java程序中?我也是Java和Linux的新手。如果这是.Net和Windows,我会创建一个Windows服务,但不知道什么是Java/Linux的等价物。
选项3不在桌面上,因为Lambda被排除(长篇故事)。
那么就性能,可维护性和可扩展性而言,哪种方法可以做到这一点呢?我需要监视的S3存储桶的数量会随着文件的频率/大小而变化(增加)。
感谢
*我选择1所看到的问题是,我需要有一个适当某种轮询行为* - 为什么这是一个问题? cron的?或一个Java解决方案? –
你能否更清楚地描述你的要求?例如,您是否说您需要立即将数据从S3复制到EC2,或者是常规批次可接受?哦,'aws s3 sync'是一次性的,不是连续的 - 你必须定期运行它来复制新文件。 –
@Scary Wombat:这不是问题,而只是我必须处理的事情。我在想,我将不得不跟踪已处理的文件,但我也可以在将它们复制到linux实例后将它们移动到已处理的存储桶中。如果这是您的选择,那么您有什么建议可以避免,或者是否有任何投票的示例代码?不太熟悉Java和Linux,所以不胜感激。 – Pete