2012-08-27 134 views
7

我創建一個iPhone應用程序,允許用戶上傳&分享照片。目前上傳的照片存儲在我訂閱的我的1and1雲服務器中。現在我想嘗試AWS。我訂閱了一個免費的AWS Linux EC2層,並設置了php/mysql。我的問題是,爲了可擴展性,我應該在哪裏存儲用戶圖片:EC2或S3?以及如何將EC2連接到S3,以便用戶上傳的照片將存儲在S3中?我的理解是,當用戶將照片上傳到我的EC2實例時,它將存儲在EC2中,因爲我只有5GB空間,所以它很快就會填滿空間。如何使用AWS S3存儲用戶上傳的圖片?

有了AWS的知識有限,我的問題可能聽起來ST ** d但任何幫助和建議將不勝感激!

回答

6

,可以儲存您的圖片在S3,存儲在EC2實例中的數據不是持久的。使用AWS SDK將數據上傳到S3。

+2

EC2實例*是*持久的,如果你創建它們作爲EBS背卷,你應該總是做。 http://stackoverflow.com/a/3630707/141172 –

+0

嗨,邁克爾 - 你是說我的應用程序應該直接調用S3 iOS API來保存S3中的照片?我看到一篇文章說S3是「最終一致性」,這意味着在照片上傳成功後,照片可能無法立即閱讀。但iPhone應用程序確實需要從服務器讀取照片以便立即顯示在屏幕上。這樣iPhone應用程序會將上傳解釋爲「失敗」並嘗試再次上傳。 – 100calorie

+0

埃裏克 - 請查看以下http://stackoverflow.com/questions/2288402/should-i-persist-images-on-ebs-or-s3 – 100calorie

5

對於這種使用情況下,我會用S3。

使用S3後盾,爲您的圖片的好處是,你可以方便地使用Amazon's Cloud Front CDN與S3爲原點(你也可以用你的EC2實例,但涉及更多的工作)。

而如何EC2與S3連接,以便用戶上傳的照片將被存儲在S3

有一個S3 API的PHP

http://aws.amazon.com/sdkforphp/

相關問題