网站首页 文章专栏 nginx 下载防盗链并自定义下载文件名称

nginx 下载防盗链并自定义下载文件名称

编辑时间:2019-10-08 14:28:01 作者:苹果 浏览量:3026




下载防盗链分为两部分组成


    1. php 方面


     $filename='need.rar';
     $new_name='新的名字';
     $fileExt = pathinfo($file_name, PATHINFO_EXTENSION);//获取原文件后缀
    $new_name.=$new_name;
    $secret = 'key';   // key,自定义秘钥
    $ipip=$_SERVER["REMOTE_ADDR"]; //iP
    $expires = time()+300; //这里是300妙内访问有效
    
    $md5 = base64_encode(md5($secret . $ipip .$filename. $expires, true)); // MD5生成
    $md5 = strtr($md5, '+/', '-_'); // + and / 替换掉
    $md5 = str_replace('=', '', $md5); // 替换=
    
    $url = "http://domain.com/$filename?md5=$md5&e=$expires&_nm=$new_name";  //安全下载链接demo设置


    2.nginx方面

        location ~* \.(rar|zip|7z)?$ {
        root /data/dowmload/rar/;
        
        set $filename $arg__nm;  //定义一个变量filename  值为url中的参数_nm
        if ($filename != "") {
        add_header Content-Disposition "attachment;filename=$filename;"; //有新的名称就输出新的名称
        }
        if ($filename = "") {
        add_header Content-Disposition "attachment;";  //无新名称输出旧名称
        }
        secure_link $arg_st,$arg_e;
        secure_link_md5 yourkey$remote_addr$uri$arg_e;  //将key 参数r  地址  过期时间 一起md5加密  处理方式用传过来的md5参数
        #limit_rate 200m;
        
        if ($secure_link = "") {
        return 403;
        }
        if ($secure_link = "0") {
        return 403;
        }
        if (!-e $request_filename)
        {
        root /data/dowmload/rar/;
        }
        }



    出自:何冰华个人网站

    地址:https://www.hebinghua.com/

    转载请注明出处


来说两句吧
最新评论