accessKeyId='***'
accessKeySecret='***'
public function testAli(){
$obj=new AliVod();
$title='test Ali';
$videoName='1.mp4';
$result=$obj->create_upload_video($title,$videoName);
$uploadAddress=json_decode(base64_decode($result->UploadAddress),true);
$uploadAuth=json_decode(base64_decode($result->UploadAuth),true);
$videoFile='/php/easyswoole/webroot/video/2019/07964ae607ddf8a315.mp4';
$obj->init_oss_client($uploadAuth,$uploadAddress);
$result=$obj->upload_local_file($uploadAddress,$videoFile);
print_r($result);
}
<?php
namespace App\Lib\AliyunSdk;
require_once EASYSWOOLE_ROOT.'/App/Lib/AliyunSdk/aliyun-php-sdk-core/Config.php';
require_once EASYSWOOLE_ROOT.'/App/Lib/AliyunSdk/aliyun-oss-php-sdk-master/autoload.php';
use vod\Request\V20170321 as vod;
use OSS\OssClient;
use OSS\Core\OssException;
class AliVod{
public $regionId='cn-shanghai';
public $client='';
public function __construct() {
$profile = \DefaultProfile::getProfile($this->regionId, \Yaconf::get('aliyun.accessKeyId'), \Yaconf::get('aliyun.accessKeySecret'));
$this->client= new \DefaultAcsClient($profile);
}
public function create_upload_video($title,$fileName,$other=[]) {
$request = new vod\CreateUploadVideoRequest();
$request->setTitle($title);
$request->setFileName($fileName);
if(!empty($other['description'])){
$request->setDescription("视频描述");
}
if(!empty($other['coverURL'])){
$request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png");
}
if(!empty($other['tags'])){
$request->setTags("标签1,标签2");
}
$result= $this->client->getAcsResponse($request);
if(empty($result)||empty($result->VideoId)){
throw new \Exception('上传视频凭证不合法');
}
return $result;
}
public function init_oss_client($uploadAuth, $uploadAddress) {
$this->ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],
false, $uploadAuth['SecurityToken']);
$this->ossClient->setTimeout(86400*7);
$this->ossClient->setConnectTimeout(10);
}
function upload_local_file($uploadAddress, $localFile) {
return $this->ossClient->uploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);
}
}