| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | <?phpnamespace Upload\Lib\View;use Dever;Dever::apply('sdk/qiniu', 'upload');class Qiniu{	public function token($config, $upload)    {        $cur = time();        if (!$config['token'] || ($config['token_endtime'] && $cur > $config['token_endtime'])) {            $auth = new \Qiniu\Auth($config['appkey'], $config['appsecret']);            # 暂时没用到callback            $policy = array(                'callbackUrl' => Dever::url('yun.callback?config=' . $config['id'], 'upload'),                'callbackBody' => 'filename=$(fname)&key=$(key)&filesize=$(fsize)&width=$(imageInfo.width)&height=$(imageInfo.height)'            );            $token = $auth->uploadToken($upload['bucket'], null, 3600);            $up['token'] = $token;            $up['token_endtime'] = $time + 3600 - 60;            $up['where_id'] = $config['id'];            Dever::db('upload/yun')->update($up);        } else {            $token = $config['token'];        }                $domain = 'http://up-z1.qiniup.com/';        return array('qiniu', $token, $domain, $upload['bucket']);    }    public function callback()	{		$body = file_get_contents('php://input');		Dever::log($body, 'qiniu_callback');		$body = json_decode($body, true);		return $body;	}	# 视频转码    public function convert($key, $file, $config, $upload)    {        $accessKey = $config['appkey'];        $secretKey = $config['appsecret'];        $host = $yun['host'];        $auth = new \Qiniu\Auth($accessKey, $secretKey);        $bucket = $upload['bucket'];        # 转码        //转码是使用的队列名称。 https://portal.qiniu.com/mps/pipeline        $pipeline = $upload['pipeline'];        if ($pipeline) {            $array = explode(',', $pipeline);            $index = array_rand($array);            if (isset($array[$index])) {                $pipeline = $array[$index];            }        } else {            $pipeline = 'convert';        }        $ext = 'mp4';        if (strstr($file, '.mp3') || strstr($file, '.wma') || strstr($file, '.wav')) {            $ext = 'mp3';        }                $force = false;        //转码完成后通知到你的业务服务器。        $notifyUrl = 'http://375dec79.ngrok.com/notify.php';        $notifyUrl = false;        $config = new \Qiniu\Config();        //$config->useHTTPS=true;        $pfop = new \Qiniu\Processing\PersistentFop($auth, $config);        //要进行转码的转码操作。 http://developer.qiniu.com/docs/v6/api/reference/fop/av/avthumb.html        //$fops = "avthumb/m3u8/s/640x360/vb/1.4m|saveas/" . \Qiniu\base64_urlSafeEncode($bucket . ":qiniu_640x360.mp4");        $fops = "avthumb/mp4/vb/1.4m|saveas/" . \Qiniu\base64_urlSafeEncode($bucket . ':' . $file . '_c.' . $ext);        list($id, $err) = $pfop->execute($bucket, $file, $fops, $pipeline, $notifyUrl, $force);        /*        echo "\n====> pfop avthumb result: \n";        if ($err != null) {            var_dump($err);        } else {            echo "PersistentFop Id: $id\n";        }        die;        //查询转码的进度和状态        list($ret, $err) = $pfop->status($id);        echo "\n====> pfop avthumb status: \n";        if ($err != null) {            var_dump($err);        } else {            var_dump($ret);        }*/    }}
 |