2012-07-13 72 views
0

我已經在Amazon EC2上安裝了Tomcat7服務器。我的一個Servlet接收一個「文件」作爲多部分文章。我需要將這些文件存儲在一個目錄結構中,稍後該文件將被另一個servlet檢索併發送到客戶端並從Amazon Web Services中刪除。使用Amazon Webservices接收,存儲,傳遞和刪除「文件」

我的問題 我應該在哪裏以及如何存儲這些文件,以及如何使用Servlet創建目錄結構。

我在看

  1. 最快的訪問文件。
  2. 只要文件不發送給客戶端,就需要存儲文件。
+0

您是否打算保存大量文件?例如。您預計您的服務器在特定時間點存儲了多少MB,GB的文件? – Viccari 2012-07-13 22:47:27

+0

@Viccari這取決於用戶的數量,我目前沒有估計。首先,它會很小,但在一段時間內它可能會增長。 – 2012-07-14 10:59:11

回答

2

你真的有兩個選擇:

1商店在當地實例存儲的內容(併爲您的實例存儲,我強烈建議EBS在實例存儲(見this question爲背景)會。更快地存儲和檢索文件,並且您可以隨時在需要時重新調整您的實例。

在S3中存儲您的文件存儲/檢索時間會比較慢,但您會得到「automagic」可擴展性,加密,增強耐用性和可用性(不需要付出努力),並且可以通過直接鏈接,機智地公開提供文件沒有必要通過您的Web應用程序。除此之外,由於文件不在特定的EC2實例中,因此您可以通過添加新實例來擴展您的Web應用程序,同時將文件集中在S3上。

我的建議是S3,即使您在傳送文件時可能會失去一些速度。設置兩個環境並進行一些測試。它可以幫助你決定。

希望它有幫助。

1

+1對@ Viccari的回答。它涵蓋了很好的選擇。

但是我的結論不同意使用的,因爲你的要求Quickest possible access to the fileStore of the file is need as long as it is not send to the client.

S3顯着低於基於EBS存儲速度較慢S3。由於您爲單個客戶端存儲給定文件,直到檢索一次,因此不需要S3提供的可擴展性。事實上,在S3中存儲的數據複製到其他可用區域之前可能需要相當多的時間。

如果您要存儲的數據將被多次服務,S3將是一個更合理的選擇(只要其性能足以滿足您的需求)。對於那個用例(而不是用於你的用例),我還會在S3之上分層Cloud Front

+0

我同意你對我的情況S3不是一個好的選擇。我正在看EBS。文件傳輸的速度對我來說非常重要。 – 2012-07-16 17:24:53