【问题标题】:How do I use AWS S3 to store user uploaded pictures?如何使用 AWS S3 存储用户上传的图片?
【发布时间】:2012-08-27 19:32:54
【问题描述】:

我正在创建一个 iPhone 应用程序以允许用户上传和分享照片。目前上传的照片存储在我订阅的 1and1 云服务器中。现在我想试试 AWS。我订阅了免费套餐 AWS Linux EC2 并设置了 php/mysql。我的问题是,出于可扩展性的目的,我应该在哪里存储用户图片:EC2 还是 S3?以及如何将 EC2 与 S3 连接,以便用户上传的照片将存储在 S3 中?我的理解是,当用户将照片上传到我的 EC2 实例时,它会存储在 EC2 中,由于我只有 5GB 空间,它很快就会填满空间。

由于对 AWS 的了解有限,我的问题可能听起来很奇怪,但我们将不胜感激任何帮助和建议!

【问题讨论】:

    标签: amazon-s3 amazon-web-services


    【解决方案1】:

    您应该将图片存储在 S3 中,存储在 EC2 实例中的数据不是持久的。使用 AWS SDK 将数据上传到 S3。

    【讨论】:

    • EC2 实例如果您将它们创建为 EBS 支持的卷,那么您几乎总是应该这样做。 stackoverflow.com/a/3630707/141172
    • 嗨,Michael - 你是说我的应用程序应该直接调用 S3 iOS API 来将照片保存在 S3 中吗?我看到一个帖子说 S3 是“最终一致性”,这意味着在成功上传照片后,照片可能不会立即可供阅读。但 iPhone 应用程序确实需要从服务器读取照片以立即显示在屏幕上。这样,iPhone 应用程序会将上传解释为“失败”并尝试再次上传。
    • 嗨@100calorie,S3 在大多数区域都提供了先读后写的一致性(请参阅here),因此在为您的存储桶选择区域时请记住这一点。
    【解决方案2】:

    对于这个用例,我会使用 S3。

    为您的图片使用 S3 支持的优势在于,您可以轻松地使用 Amazon's Cloud Front CDN 并以 S3 作为源(您也可以使用您的 EC2 实例,但这涉及更多工作)。

    以及如何将 EC2 与 S3 连接,以便用户上传的照片将存储在 S3 中

    有一个用于 PHP 的 S3 API

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

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2018-07-11
      • 2018-08-29
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多