技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> 防盗链、断点续传、多线程多线程下载 一点心得

防盗链、断点续传、多线程多线程下载 一点心得

浏览:6406次  出处信息

   最近有一个需求:

   要卖给用户一个下载地址,需要做时间限制。

   这看似是一个非常简单的问题,但是包含了好几个问题:

   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 使用说明,详细规则,防盗链,不懂的自己去搜索吧。

   ——————————————————

   抛砖引玉,希望引来高手的玉。

建议继续学习:

  1. Nginx 反盗链设置    (阅读:3594)
  2. 让盗链图片显示我们的广告    (阅读:2844)
  3. 全平台大文件断点续传上传技术 ( 开源项目 Stream )    (阅读:2132)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1