Unicorn + Rails +大型上传

sea*_*owg 11 ruby-on-rails http heroku unicorn

我试图在使用Rails在Heroku上运行Unicorn时允许大量上传,但我意识到任何大型上传可能需要比Unicorn工作者的超时时间更长的时间.这意味着(我已经看到这种情况发生),Unicorn主进程将终止上传大文件的工作程序,并且请求将超时(503错误).

如果没有删除或大规模增加我的服务器的超时,有没有办法允许上传工作程序在上传完成时挂起?或者,我是否完全误解了,并且最有可能导致我的上传超时的其他内容?

dbe*_*hur 8

如果您在独角兽面前使用nginx作为反向代理,则可以使用上传模块.配置完成后,nginx会处理上传并将其存储在/ tmp目录中,然后你的独角兽会获得请求参数,告诉它上传资产的位置和内容类型.没有更多的工作人员接收上传.

如果您不希望上传到与Web服务相同的服务器上,而是将其存储在S3中,则应遵循@Neil Middleton的建议并进行设置,以便直接上传到那里.


Nei*_*ton 7

如果您要上传到S3,那么您可以"简单地"让用户将文件直接上传到S3而不是通过您的dynos,并在上传完成时获取.

有关此信息的更多信息,请查看CarrierWaveDirect内容