微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ie9 关闭javascript错误提示

近期发现使用curl PHP下载七牛云存储中的文件时,下载速度极其缓慢,令人十分不解。

curl php 七牛下载慢

在进行相关调查后,发现七牛文件下载速度受到以下几方面因素影响:

1、地域因素:


    $ch = curl_init($url);
    //设置超时
    curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
    // 取消https证书验证
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
    // 响应体
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    $response = curl_exec($ch);
    // 状态码
    $statusCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
    curl_close($ch);
    return array('statusCode' => $statusCode,'response' => $response);

针对地域因素,我们可以在代码中设置代理服务器来实现加速。通过在请求头中添加参数,使请求首先经过代理服务器进行转发,从而实现加速效果。比如,可以在代码添加以下代码


    curl_setopt($ch,CURLOPT_PROXY,"代理服务器IP:代理服务器端口号");

这样在请求过程中,请求将会先通过代理服务器进行转发,减少请求发起到接收的时间,达到加速效果

2、连接协议因素:


    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,5);
    $fh = fopen($file_save,'w');
    curl_setopt($ch,CURLOPT_FILE,$fh);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;

针对连接协议因素,我们可以在代码中更改连接协议来实现加速。在认情况下,curl会使用HTTP/1.1协议来进行通信,但是这个协议在一些情况下会导致下载速度变慢。因此,我们可以在代码中更改为较新的HTTP/2协议来提升下载速度


    curl_setopt($hand,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2TLS);

这样在请求过程中,curl将会采用较新的HTTP/2协议来进行通信,从而提升下载速度

3、链接超时因素:


    $fp=fopen($to_go,'w+');
    curl_setopt($ch,$fp);
    curl_setopt($ch,CURLOPT_HEADER,0);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,120);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);

针对链接超时因素,我们可以在代码中设置超时时间来缩短下载时间。我们可以对curl的连接设置进行调整,使curl请求的超时时间缩短,快速请求数据。

经过以上三方面的优化,我们可以大幅度提升七牛云存储下通过curl PHP下载文件的速度,节约时间,提升效率。

参考文献:

https://api.qiniu.com/v6/manual/api/region-datacenters/

https://www.cnblogs.com/sherrydance/p/12648157.html

https://blog.csdn.net/haiyikuo007/article/details/85071158

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐