ruby-on-rails – 上传文件时独角兽的超时错误

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

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

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

谢谢!
林戈

最佳答案
如果您通过Heroku将大文件上传到S3,则无法合理地避免超时.如果有人决定上传一个大文件,它就会超时.如果上传到Heroku需要超过30秒,转移到S3并进行处理,请求将超时.也有充分的理由,30秒的请求只是糟糕的表现.

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

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

转载注明原文:ruby-on-rails – 上传文件时独角兽的超时错误 - 代码日志