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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...