這裏是我能想到的,但不知道這是最好的方式不同的方式把它們以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