2012-08-27 84 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/

相关问题