Sinatra 请问为什么用了 Thin 之后在 Sinatra 里用 stream 下载文件会不能显示进度

mopperwhite · 2016年05月07日 · 最后由 ayaseangle 回复于 2016年05月16日 · 6784 次阅读

用 Mongo GridFS 存储文件

然后用 stream 传输文件

get '/donwload' do
  stream do |out|
    $fs.download_to_stream_by_name(params[:file],out)
    out.close
  end
end

客户端用 Python 接收

import urllib
def __hook(count,blockSize,totalSize):
    print count,blockSize,totalSize
urllib.urlretrieve(url,filename,reporthook=hook)

之前用 WebRick 的时候 totalSize 可以得到,改用 Thin 之后就编程 -1 了

请问有谁也遇到过这种情况吗

是先读取元信息吗?流这个东西好像不好测大小吧。。。。在传输完成之前。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号