9

好的,快速总结一下我的设置和我想要完成的事情:

  1. 我有一个运行我的网站的 rails 2.3.5 服务器。我的网站上有一个 Flash 应用程序,用户可以将图像直接上传到 s3。

  2. 上传完成后,rails 会收到通知。

  3. 在图像完成上传到 s3 并通知 rails 时,我希望 rails 将一些帖子发送到位于 ec2 上的东西以创建两个缩略图(110x110 和 600x600)。

  4. 创建缩略图并将其传输到 s3 时,我希望 ec2 上的任何进程将帖子发送回 rails 以通知缩略图创建已完成并位于 s3 上。

实现这一目标的最佳方法是什么?我已经非常简要地查看了诸如之类的工具,但我对使用 ec2 或类似服务一点也不熟悉。

谢谢

4

2 回答 2

18

对于像我这样的人来说,AWS 现在提供Lambda

AWS Lambda 是一项计算服务,可让您轻松构建快速响应新信息的应用程序。AWS Lambda 运行您的代码以响应图像上传、应用内活动、网站点击或连接设备的输出等事件。您可以使用 AWS Lambda 使用自定义逻辑扩展其他 AWS 服务,或者创建您自己的以 AWS 规模、性能和安全性运行的后端。使用 AWS Lambda,您可以轻松创建离散的、事件驱动的应用程序,这些应用程序仅在需要时执行,并自动从每天几个请求扩展到每秒数千个请求。

这是一个很好的演练,它完美地回答了这个问题,处理 Amazon S3 事件。这个想法是让 node.js 包 - Labmda- 通知 S3 存储桶事件(在我们的例子中是对象创建的),获取上传的对象,调整它的大小,然后最后将其保存在其他存储桶中作为缩略图。由于您将拥有一个 node.js 应用程序,因此您基本上可以在保存缩略图后向您想要的任何服务发出任何类型的请求。

于 2015-03-12T17:22:38.783 回答
6

我将使用的过程如下:

  1. 将图像上传到 S3 后,rails 会收到通知并将消息添加到 Amazon SQS 队列(请参阅http://aws.amazon.com/sqs/

  2. EC2 上运行的后台进程检查队列并处理任何消息,生成缩略图

  3. 生成缩略图后,将使用 Amazon SNS(请参阅http://aws.amazon.com/sns/)发送通知,并且您的 rails 应用程序会响应此通知

于 2011-11-04T18:55:41.950 回答