终于找到了如何实现这个目标!
原来它就像启用xsendfile和设置头参数Accept-Range
一样简单请阅读下面的答案
(顺便说一句,在下面的块引用中我写了一个常见的陷阱新手 - 就像我做的那样。我们倾向于认为应该手动编程)
网址必须类似于: mysite.com/get_file?file_point=100 - > 这将从字节100
中读取
- 从参数(我们示例中的file_point参数)获取偏移量
- 找出文件大小(File.size)
- 从offset到length读取文件(相当于PHP中的fseek)
- 使用send_file发送文件
醇>我不知道如何在Ruby中执行第3步 在上面的步骤。
答案 0 :(得分:1)
这就是我做到的:
response.header["Accept-Ranges"] = "bytes"
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true
我要求我们的服务器人设置mod_xsendfile,我不知道如何设置它。
此处的教程:http://www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/
在此处阅读内容长度:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
关于流媒体可在此处获取:http://api.rubyonrails.org/classes/ActionController/Streaming.html