上传文件时独角兽的超时错误

Rin*_*cke 6 ruby-on-rails unicorn carrierwave

我在Heroku上使用独角兽.我遇到的一个问题是文件上传.我们使用carrierwave进行上传,基本上,即使对于大小约为2MB的文件,在完成50-60%的上传时,Unicorn也会超时.

我们在本地测试时没有使用独角兽,我在本地没有任何大文件问题(尽管文件使用carrierwave上传到AWS,就像生产+登台一样).但是,在暂存和生产服务器上,我看到我们得到了超时.

有关解决此问题的任何策略?我不确定我是否可以将此文件上传到延迟的作业上(因为我需要向我的用户确认该文件确实已成功上传).

谢谢!林戈

Nic*_*eys 2

如果您通过 Heroku 将大文件上传到 S3,则无法合理避免超时。如果有人决定上传大文件,就会超时。如果上传到Heroku、传输到S3并处理的时间超过30秒,请求将超时。也有充分的理由,30 秒的请求只是糟糕的性能。

这篇博文(和 github 存储库)非常有帮助:http://pjambet.github.io/blog/direct-upload-to-s3/

有了它,您应该能够直接上传到 s3 文件。您完全可以避免使用 Heroku 进行大部分上传。使用jquery-fileupload的回调,您可以在文件成功上传后发布到您的应用程序,并使用delayed_job在后台处理它。向用户确认上传成功是您只需处理的应用程序问题。