Sinatra示例代码下载大文件

时间:2014-12-08 06:16:37

标签: sinatra

我开始使用sinatra,

现在我使用以下代码处理文件下载, 它适用于小文件,但是对于大文件> 500MB 连接在中间断开。

dpath = "/some root path to file"
get '/getfile/:path' do |path|
    s = path.to_s
    s.gsub!("-*-","/")
    fn = s.split("/").last
    s = dpath +"/"+ s
    send_file s,:filename => fn
end

1 个答案:

答案 0 :(得分:0)

两件事:

您的validate方法有何功能?如果它试图在内存中打开文件,则可能是服务器上的RAM不足(特别是对于大文件)。

你在哪里设置fn?它是get范围内的局部变量,在代码示例中没有任何设置。