27

我们需要在我们的应用程序中以多种可能的尺寸提供相同的图像。该库包含数十张将存储在 S3 上的数千张图像,因此以所有可能的大小存储相同的图像似乎并不理想。我在 Google 上看到过一些提及 EC2 可用于动态调整 S3 图像的内容,但我很难找到更多信息。任何人都可以向我指出更多信息的方向,或者理想情况下,一些代码示例?

提示

起初对我们来说并不明显,但从不直接从 S3 向应用程序或网站提供图像,强烈建议使用 CloudFront。有3个原因:

  1. 成本 - CloudFront 更便宜
  2. 性能 - CloudFront 更快
  3. 可靠性 - 当频繁查询时,S3 偶尔不会为资源提供服务,即每秒超过 10-20 次。这花了我们很长时间来调试,因为资源将随机不可用。

以上不一定是 S3 的失败,因为它是一种存储而不是内容交付服务。

4

2 回答 2

14

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

于 2013-01-29T23:03:23.617 回答
6

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

于 2013-01-29T05:51:15.793 回答