从 Ruby on Rails 多次上传到 Amazon S3 - 使用啥后台处理系统?

Posted

技术标签:

【中文标题】从 Ruby on Rails 多次上传到 Amazon S3 - 使用啥后台处理系统?【英文标题】:Multiple Uploads to Amazon S3 from Ruby on Rails - What Background Processing System to Use?从 Ruby on Rails 多次上传到 Amazon S3 - 使用什么后台处理系统? 【发布时间】:2010-11-09 13:52:36 【问题描述】:

我正在开发一个 Ruby on Rails 应用程序,该应用程序需要允许用户一次同时上传 16 张高质量图像。

这通常意味着大约 10-20 兆字节(有时更多),但连接数已成为最相关的问题。

图像从 Paperclip 发送到 Amazon S3,不幸的是,它为 16 个文件中的每一个打开和关闭了一个新连接。不用说,我需要移动系统以作为后台进程运行,以防止我的 Web 服务器像没有流量一样被锁定。

我的问题是,在所有用于后台作业的基于 Rails 的系统(Starling、BackgroundRb、Spawn 等)中,是否有一个比其他系统更适合这种情况(我我对构建后台系统还是新手,所以所有可用的系统对我来说都是新的)?

【问题讨论】:

【参考方案1】:

不乏用于异步处理的 Rails 插件,基本上它们都可以正常工作。我个人最喜欢Delayed Job的api。

我不会使用 Starling 或其他实际的队列守护程序,因为对于此任务,使用数据库存储任何必要的状态应该没问题。

【讨论】:

【参考方案2】:

这可能会有所帮助!

http://aaronvb.com/blog/2009/7/19/paperclip-amazon-s3-background-upload-using-starling-and-workling

编辑:

不可能通过普通的 html 多部分表单将文件发送到后台。他们必须通过那个请求来完成。如果您正在寻找解决此问题的方法,可以尝试 SWFUpload,然后在完成后使用后台进程处理 Amazon S3 上传。

【讨论】:

【参考方案3】:

这也是一篇很好的调查博文http://4loc.wordpress.com/2010/03/10/background-jobs-in-ruby-on-rails/

【讨论】:

【参考方案4】:

我喜欢 swfupload,我们在我们编写的一些 S3 应用程序上使用它。它被证明是非常快速和稳定的。您可以在上传后通过 Ajax 触发操作,等等……我们有大量的上传通过它,但失败了 0 次。

【讨论】:

以上是关于从 Ruby on Rails 多次上传到 Amazon S3 - 使用啥后台处理系统?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ASIHTTPRequest 从 iPhone 上传到 Ruby on Rails

将Ruby on Rails项目从github上传到AWS EC2实例错误

Ruby on rails在主机上传[关闭]

Ruby on Rails Cloudinary 上传多张图片

ruby on rails读取excel文件完整流程

ruby on rails读取excel文件完整流程