问题描述
上传同一个文件(32kb)有时候需要2s,但有时候需要11s,上传速度太不稳定,且太慢。
上传的过程是由前端上传文件到后端php(使用yii2框架)的接口,由php调qiniu的sdk上传方法。经过排查,前端上传文件到php后端所在的服务器时间很短在几百毫秒内,可忽略不计。想问一下为何上传到七牛的过程这么慢,如何解决这个问题,因为系统快要使用,所以还对上传这个事情还比较急。
问题出现的环境背景及自己尝试过哪些方法
排查过前端上传文件到服务端的时间不慢,也排查过网速。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<?php
/**
- 七牛云存储组件
*
*/
namespace appcommoncomponents;
use Yii;
use yiibaseComponent;
use QiniuAuth;
use QiniuStorageUploadManager;
class Qiniu extends Component
{
public $accessKey;
public $secretKey;
public $auth;
public $defaultBucket;
public $privateBucket;
public $cdnHost;
public function init()
{
parent::init();
$this->auth = new Auth($this->accessKey, $this->secretKey);
}
/**
* 上传文件到七牛
*
* @param string $filePath 需要上传的文件路径
* @param string $key 在七牛上存储的文件名
*
* @return string 上传后文件访问的地址
*/
public function upload($filePath, $key, $bucket = null)
{
$uploadMgr = new UploadManager();
$bucket = empty($bucket) ? $this->defaultBucket : $bucket;
$token = $this->auth->uploadToken($bucket);
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
if ($err !== null) {
Yii::$app->response->error(
Yii::$app->response->resCode['ERROR_QINIU_UPLOAD_FAILED'],
'Upload to qiniu failed.'
);
} else {
return $ret['key'];
}
}
/**
* 生成七牛 CDN URL
*
* @param string $key 相对路径
*
* @return string
*/
public function generateUrl($key, $hostType = 'default')
{
return !empty($key) ? $this->cdnHost[$hostType] . trim($key, '/') : '';
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
上传几十kb的文件不至于这么慢啊,希望有人碰到过这种情况可以帮忙解决,谢谢各位?
不能走内网么,是文件流传输么