Heroku花费太多时间上传到S3(载波和雾)

时间:2012-10-24 20:57:32

标签: ruby-on-rails-3 heroku amazon-s3 carrierwave fog

我有一个Rails应用程序,当用户从网络调用一个动作时,heroku应用程序生成一个随机图像,将该图像上传到S3并向用户返回该图像的公共URL(存储在s3中)。 。

“将图像上传到S3”需要很长时间,需要一个27kb 20秒的文件,这是不可能的......我真的不知道如何解决这个问题,因为事情正在发挥作用,它正在上传到s3但是太过分了...

我正在考虑将图像存储在rails应用程序的tmp文件夹中,但我不知道在被删除之前会有多长时间...任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果图像不是临时图像,则不应将它们存储在Heroku上,因为当dyno处于非活动状态时它们将被删除。

我认为您应该调查将上传到s3移动到异步后台作业。有几个可用的选项:DelayedJob,Resque和Sidekiq是一些比较流行的背景处理宝石。您还必须在Heroku上添加一个工作人员来处理您的后台工作。

通过将上传内容移至后台作业,您的用户将不会有大量的等待时间,因为图片上传过程将单独完成。