流式网络上传到使用Rack的套接字

我目前有一个在FCGI处理程序中运行的Sinatra应用程序。 我想编写一个处理程序,它将位于rackup文件中(可能位于Sinatra应用程序前面)并将通过套接字将大文件上传到另一个服务器(不首先在磁盘上缓冲)并与请求联锁。 所以我想要做的是某种流式解码发送工作流程,而不进行param预处理。 我已经读到某个地方存在这个问题,因为特别是由于Rails团队想要看到中间件管道的方式所有在Rack中的上传已经被重新编排,这意味着上传将被缓冲,所以不仅我不能提供Rack中的上传进度,但我还必须将文件缓冲在磁盘上,然后将其发送到下游。

是否有一些交叉后端解决方案将Web服务器的请求循环与Rack响应器绑定,并且不强制重写输入(并且不强制上传内存缓冲,这是绝对的愚蠢疯狂)? 目前解决这类问题的方法是什么?

你是对的:Rack规范要求可重绕输入,这意味着缓冲。 Rack似乎不是这项工作的工具。

您可能想尝试FastCGI,它确实允许非缓冲流式传输。 或者也许是Java Servlet。 我的2¢:你真的需要吗? 如果没有,不用担心,磁盘空间真的很便宜。 如果是这样,你真的需要在Ruby中做到吗?

编辑 :Mongrel :: HTTPRequest不支持无缓冲的大流输入(没有monkeypatching)