在客户端提交的请求中如果有头部字段“Range”,就表明客户端只须要接收目标文件的部分内容。这时需要接受请求的脚本程序判断Range头的内容,然后给lighty的content属性制定如下格式的值:
{{filename = 文件路径,offset=文件内容的起始位置,length=要获得的文件内容大小}}
以下为LUA代码例子:
range_str = lighty.request["Range"];
if range_str ~= nil then
sep_pos = string.find( range_str, "-" )
num1 = string.sub( range_str, 1, sep_pos - 1 )
if string.len(num1) < 1 then num1 = 0 end
num2 = string.sub( range_str, sep_pos + 1 )
if string.len(num2) < 1 then
lighty.content = {{filename = fileurl,offset=num1}}
else
lighty.content = {{filename = fileurl,offset=num1,length=num2+1}}
end
else
lighty.content = {{filename = fileurl}}
end
参考文档:
http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModMagnet