php 防盗链、断点续传、以及多线程下载的一点儿小心得!!
2013-11-19 11:07
337 查看
最近有一个需求:
要卖给用户一个下载地址,需要做时间限制。
昨天, 还和几位朋友在PHP讨论群(276167802 验证:csl,有兴趣的话可以加入进来一起讨论)里提到,这个问题看似是一个非常简单的问题,但是包含了好几个问题:
1、常用防盗链技术是,通过 php 文件,读取 真实文件内容,以二进制方式传输给客户端。
这个方法的优点是,容易控制,比如来源判断,速度限制,计数等,
缺点:不能断点续传,不能多线程下载。
因为当客户端掉线重新连接的时候,客户端请求下载文件大小,文件下载到得偏移量。
比如需要请求: download.php?key=xxxxxxx
这时候 服务器软件 apache 会认长度都超过 download.php 本身长度,所以直接返回错误,download.php 这个文件根本没有机会解析。。。
所以,这个方法比较鸡肋,只适合于图片或者很小体积的软件。
2、之所以用 php ,防盗链,是因为很多时候我们不能控制服务器,不能控制
apache,但是我们可以控制 .htaccess 文件。
.htaccess 文件比较强大,可以用正则表达来做很多事,包括判断来源,伪静态,防盗链等。
具体我就不介绍了,自己去 股沟 搜索吧。
现在说说,防盗链、断点续传的思路。
假设我有 2000 用户,那么每增加一个用户,就给 .htaccess 增加一条 RewriteRule 规则,RewriteRule 规则是一对散乱的随机字符串,对应真实地址;每天检测一次 .htaccess 文件,清除超过期限的用户。
也就是说,把 htaccess 当一个索引表来用。
优点:防盗链,可断点续传,多线程下载,服务里压力小。
缺点:不能统计下载次数、用户参数
(上述需求,假设用户不是很多,1K左右,而下载的文件都在 G级别。
当然,如果有更多用户,那么就可以直接购买服务器,就可以直接控制apache ,就不会这样处处受限制了。)
知识点:htaccess 使用说明,详细规则,防盗链,不懂的自己去搜索吧。
以上是本文关于php 防盗链、断点续传、以及多线程下载的一点儿小心得,希望本文对广大php开发者有所帮助,感谢阅读本文。
要卖给用户一个下载地址,需要做时间限制。
昨天, 还和几位朋友在PHP讨论群(276167802 验证:csl,有兴趣的话可以加入进来一起讨论)里提到,这个问题看似是一个非常简单的问题,但是包含了好几个问题:
1、常用防盗链技术是,通过 php 文件,读取 真实文件内容,以二进制方式传输给客户端。
这个方法的优点是,容易控制,比如来源判断,速度限制,计数等,
缺点:不能断点续传,不能多线程下载。
因为当客户端掉线重新连接的时候,客户端请求下载文件大小,文件下载到得偏移量。
比如需要请求: download.php?key=xxxxxxx
这时候 服务器软件 apache 会认长度都超过 download.php 本身长度,所以直接返回错误,download.php 这个文件根本没有机会解析。。。
所以,这个方法比较鸡肋,只适合于图片或者很小体积的软件。
2、之所以用 php ,防盗链,是因为很多时候我们不能控制服务器,不能控制
apache,但是我们可以控制 .htaccess 文件。
.htaccess 文件比较强大,可以用正则表达来做很多事,包括判断来源,伪静态,防盗链等。
具体我就不介绍了,自己去 股沟 搜索吧。
现在说说,防盗链、断点续传的思路。
假设我有 2000 用户,那么每增加一个用户,就给 .htaccess 增加一条 RewriteRule 规则,RewriteRule 规则是一对散乱的随机字符串,对应真实地址;每天检测一次 .htaccess 文件,清除超过期限的用户。
也就是说,把 htaccess 当一个索引表来用。
优点:防盗链,可断点续传,多线程下载,服务里压力小。
缺点:不能统计下载次数、用户参数
(上述需求,假设用户不是很多,1K左右,而下载的文件都在 G级别。
当然,如果有更多用户,那么就可以直接购买服务器,就可以直接控制apache ,就不会这样处处受限制了。)
知识点:htaccess 使用说明,详细规则,防盗链,不懂的自己去搜索吧。
以上是本文关于php 防盗链、断点续传、以及多线程下载的一点儿小心得,希望本文对广大php开发者有所帮助,感谢阅读本文。
相关文章推荐
- 干货,Java多线程下载文件以及断点续传
- android多线程下载以及断点续传
- android多线程下载以及断点续传
- Android【封装】多线程下载以及断点续传
- php面向对象学习心得之单例以及序列化的理解
- 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示
- 多线程下载以及断点续传
- android多线程下载以及断点续传
- 关于PHP模板Smarty的初级使用方法以及心得分享
- 关于PHP模板Smarty的初级使用方法以及心得分享
- android多线程下载以及断点续传
- PHP采集利器:Snoopy 试用心得
- PHP防盗链
- 详解PHP对数组的定义以及数组的创建方法
- php防盗链网站图片采集
- PHP获取文件夹的图片以及分页
- php学习心得1:框架mvc
- ajax心得2--ajax主要对象、方法以及属性的介绍
- PHP安装包已更新至PHP5.58以及PHP5.4.24
- 封装ShareSDK中的分享功能封以及对类似第三方功能封装的心得