用Lighttpd加脚本实现服务器端可进行身份验证的HTTP断点续传下载

 

在客户端提交的请求中如果有头部字段“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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值