【问题标题】:Rails - uploading big images to HerokuRails - 将大图像上传到 Heroku
【发布时间】:2013-07-24 09:20:39
【问题描述】:

当我从相机将图像(在 Amazon S3 服务器上)上传到 Heroku 应用程序时,假设照片超过 2.5MB,有时应用程序未在 30 秒内处理,我在屏幕上看到警告关于应用程序错误的消息。

这不是很人性化的行为,如何避免这种行为?我现在可以购买额外的测功机,但我不确定这是一个解决方案。对于文件上传,我使用 Paperclip gem。

当用户上传大于 3MB 的图片时,您如何解决这种情况?

【问题讨论】:

  • 您是否对图像进行了任何可能会减慢速度的后期处理(例如使用回形针调整大小)?使用带有回形针的heroku上的rails上传25mb的文件没有问题。
  • 是的,拇指和中等大小图像的基本调整大小 -> 这意味着我正在上传原始图像,并从这个原始大小的图像创建另外 2 个图像。

标签: ruby-on-rails ruby heroku upload amazon-s3


【解决方案1】:

您可以做几件事:(按照从最好到最坏的顺序排列)

  1. 如果您需要对图像进行大量后期处理(例如调整图像大小),您可以使用“延迟作业”在工作测功机上完成所有这些处理。通过这种方式,您可以更快地获得响应,但您的替代或调整大小的图像版本不会立即可用,只有:original。这里有一个教程:http://madeofcode.com/posts/42-paperclip-s3-delayed-job-in-rails

  2. 您可以使用Unicorn 或其表亲之一。虽然它本身可能无法解决图像上传问题,但它允许您调整请求超时所需的时间。作为一个额外的好处,它还应该加速你的应用程序的其余部分。

  3. 您可以尝试将Carrier WaveCarrierWaveDirect 一起使用,而不是回形针。这有点像在黑暗中拍摄,因为我从未亲自使用过它,但它应该“更好”,这可能意味着更快?可能是?听起来它的工作方式与带有延迟作业的回形针类似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2014-11-25
    • 2022-07-02
    • 1970-01-01
    • 2013-11-25
    • 2021-09-03
    • 2016-04-28
    相关资源
    最近更新 更多