使用EC2根据需要调整存储在S3上的图像

时间:2013-01-29 05:28:43

标签: image-processing amazon-web-services amazon-s3 amazon-ec2

我们需要在我们的应用中以多种可能的尺寸提供相同的图像。该库由数以万计的图像组成,这些图像将存储在S3上,因此以相同的尺寸存储相同的图像似乎并不理想。我在Google上看到过一些提及EC2可以用来动态调整S3图像的大小,但我很难找到更多信息。任何人都可以指点我更多的信息或理想的一些代码样本?

提示

一开始对我们来说并不明显,但从不直接从S3向应用或网站提供图片,强烈建议您使用CloudFront。有三个原因:

  1. 成本 - CloudFront更便宜
  2. 效果 - CloudFront更快
  3. 可靠性 - S3经常在查询时偶尔不会提供资源,即每秒超过10-20次。这需要我们多年的时间来调试,因为资源随机无法使用。
  4. 以上不一定是S3的失败,因为它意味着存储而不是内容传递服务。

2 个答案:

答案 0 :(得分:14)

为什么不存储所有图像尺寸,假设您没有谈论数百种不同的可能尺寸?存储成本极低。然后,您还可以通过Cloudfront(或直接从S3)提供图像,这样您就不必使用应用程序服务器即时调整图像大小。如果您提供大量这些图像,则无需在Web服务器中动态调整图像和处理图像请求,节省的处理成本(即CPU周期,内存要求等)可能很容易抵消存储成本。

答案 1 :(得分:6)

您需要的是图像服务器。是的,它可以在EC2上托管。这些链接应该有助于开始:https://github.com/adamdbradley/foresight.js/wiki/Server-Resizing-Images http://en.wikipedia.org/wiki/Image_server