我开始使用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
答案 0 :(得分:0)
两件事:
您的validate
方法有何功能?如果它试图在内存中打开文件,则可能是服务器上的RAM不足(特别是对于大文件)。
你在哪里设置fn
?它是get范围内的局部变量,在代码示例中没有任何设置。