gpt4 book ai didi

ruby - 使用 Rack 将网络上传流式传输到套接字

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:55 25 4
gpt4 key购买 nike

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

是否有一些跨后端解决方案将网络服务器的请求循环与 Rack 响应程序联系起来并且不强制在输入上倒带(并且不强制上传的内存缓冲这绝对是愚蠢的疯狂)?目前有哪些解决此类问题的方法?

最佳答案

你是对的:Rack 规范要求可倒带输入,这意味着缓冲。看来 Rack 不是这项工作的工具。

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

编辑:Mongrel::HTTPRequest 支持无缓冲的大型流输入(没有猴子补丁)

关于ruby - 使用 Rack 将网络上传流式传输到套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4795205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com