首页 文章

使用Heroku和Mailgun路由处理附件

提问于
浏览
3

我的webapp是部署到Heroku的Ruby on Rails应用程序 .

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

基本上Mailgun路由POST主题,正文,发件人等东西作为HTTP参数 . 附件作为以multipart / form-data编码的文件上载进行POST . 在控制器中,它们显示为UploadedFile(http://api.rubyonrails.org/classes/ActionDispatch/Http/UploadedFile.html) .

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

但是,如果有大型附件或许多附件,请求将超时(Heroku臭名昭着的H12错误) .

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

  • 将整个UploadedFile对象或UploadedFile.tempfile发送给后台工作程序会导致不可靠的行为(延迟作业对大型对象(如Model实例)不起作用)

  • 发送tempfile的路径并尝试打开它不起作用,因为tempfiles只能访问它们所在的dyno(tempfile存储在web worker dyno中,并且从后台worker dyno尝试访问它失败了 - Creating temporary files in Heroku

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

1 回答

  • 1

    我刚刚遇到使用Mailgun路由功能的类似问题 . 问题的答案似乎是使用他们在2013年晚些时候发布的“商店”功能 . 希望在集成路由功能之前我会遇到这个问题,因为使用商店的方法是完全不同的 .

相关问题