七牛php sdk上传文件太慢

新手上路,请多包涵

问题描述

上传同一个文件(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的文件不至于这么慢啊,希望有人碰到过这种情况可以帮忙解决,谢谢各位?

阅读 3.8k
4 个回答

不能走内网么,是文件流传输么

可以直接前端上传,不走服务端

1,直接前端上传到七牛云
2.直接用管理员的浏览器直接上传到七牛云,不用经过服务器

新手上路,请多包涵

说前端上传到七牛的,服务端不验证格式的???

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题