2013-04-05 56 views
3

我的webapp是一个部署到Heroku的Ruby on Rails应用程序。使用Heroku和Mailgun路径处理附件

我使用Mailgun路由将电子邮件转发到我的Web应用程序。 Mailgun路线的文件在这里http://documentation.mailgun.net/user_manual.html#um-routes

基本上Mailgun将邮件的主题,主体,发件人等邮件路由为HTTP参数。附件以多部分/表单数据编码的文件上传形式发布。在控制器中,它们显示为UploadedFile(http://api.rubyonrails.org/classes/ActionDispatch/Http/UploadedFile.html)。

在控制器中,我继续将附件上传到S3。

但是,如果有大附件或附件,请求会超时(Heroku臭名昭着的H12错误)。

我尝试使用后台工作(延迟工作),但遇到了这些问题

  • 发送整个UploadedFile的对象或UploadedFile.tempfile到后台工作导致不可靠的行为(延迟工作没有发挥好与大型对象,如模型实例)
  • 发送到tempfile并试图打开它的路径不起作用,因为临时文件只能访问它们所在的dyno(tempfile存储在web worker dyno并访问它从后台工作者dyno尝试失败 - Creating temporary files in Heroku

关于我如何解决这个问题的任何聪明的想法?

回答

1

我刚刚遇到过使用Mailgun路由功能的类似问题。这个问题的答案似乎是使用2013年晚些时候发布的'Store'功能。希望在集成路由功能之前遇到此问题,因为使用Store的方法完全不同。