初始化项目:添加后端代码、ThinkPHP框架、前端资源
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace ShaoZeMing\AliVod\Services;
|
||||
|
||||
|
||||
use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
|
||||
use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
|
||||
|
||||
class BaseService
|
||||
{
|
||||
|
||||
|
||||
public $client;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $config;
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $accessKeyID;
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $accessKeySecret;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $regionId;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $timeout;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $type;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
public $acceptFormat;
|
||||
|
||||
|
||||
/**
|
||||
* BaseService constructor.
|
||||
* @param null $config
|
||||
* @param string $securityToken 如果是设置了sts模式,传入这个参数
|
||||
*/
|
||||
public function __construct($config=null,$securityToken='')
|
||||
{
|
||||
$this->setConfig($config);
|
||||
|
||||
if ($this->type == 'sts') {
|
||||
$this->client = $this->initVodSTSClient($securityToken);
|
||||
} else {
|
||||
$this->client = $this->initVodClient();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @return DefaultAcsClient
|
||||
*/
|
||||
public function initVodClient()
|
||||
{
|
||||
|
||||
|
||||
$profile = DefaultProfile::getProfile($this->regionId, $this->accessKeyID, $this->accessKeySecret);
|
||||
|
||||
return new DefaultAcsClient($profile);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $securityToken
|
||||
* @return DefaultAcsClient
|
||||
*/
|
||||
public function initVodSTSClient($securityToken)
|
||||
{
|
||||
$profile = DefaultProfile::getProfile($this->regionId, $this->accessKeyID, $this->accessKeySecret, $securityToken);
|
||||
return new DefaultAcsClient($profile);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $config
|
||||
*/
|
||||
public function setConfig($config)
|
||||
{
|
||||
if($config){
|
||||
$this->config = $config;
|
||||
}else{
|
||||
$this->config = \app\common\model\config\System::getConfig('alivod');
|
||||
}
|
||||
|
||||
$this->accessKeyID = $this->config['access_key_id'];
|
||||
$this->accessKeySecret = $this->config['access_key_secret'];
|
||||
$this->regionId = $this->config['region_id'];
|
||||
$this->timeout = '3600'; // 如果是获取签名有效时间为多少
|
||||
$this->type = 'access';//类型:access|sts 如果是sts 实例化对象时候需要传入$securityToken
|
||||
$this->acceptFormat = 'JSON';//返回数据格式
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace ShaoZeMing\AliVod\Services;
|
||||
|
||||
|
||||
use ShaoZeMing\AliVod\SDK\DeleteVideoRequest;
|
||||
use ShaoZeMing\AliVod\SDK\GetMezzanineInfoRequest;
|
||||
class FileService extends BaseService
|
||||
{
|
||||
|
||||
/**
|
||||
* 刷新视频上传凭证
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $videoId
|
||||
* @return mixed|\ShaoZeMing\Aliyun\Core\SimpleXMLElement
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
|
||||
*/
|
||||
public function deleteVideo($videoId)
|
||||
{
|
||||
$request = new DeleteVideoRequest();
|
||||
$request->setVideoIds($videoId);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
|
||||
public function getMezzanineInfo($videoId)
|
||||
{
|
||||
$request = new GetMezzanineInfoRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace ShaoZeMing\AliVod\Services;
|
||||
|
||||
|
||||
use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
|
||||
use ShaoZeMing\AliVod\SDK\DecryptKMSDataKeyRequest;
|
||||
use ShaoZeMing\AliVod\SDK\GetVideoPlayAuthRequest;
|
||||
class PlayService extends BaseService
|
||||
{
|
||||
|
||||
/**
|
||||
* 通过音视频ID直接获取媒体文件(支持视频和音频)的播放地址。
|
||||
* @param $videoId
|
||||
*/
|
||||
public function getPlayInfo($videoId,$outTime = 0)
|
||||
{
|
||||
$request = new GetPlayInfoRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$request->setResultType('Multiple');
|
||||
if($outTime){
|
||||
//设置播放地址的有效时间。单位:秒。
|
||||
$request->setAuthTimeout($outTime);
|
||||
}
|
||||
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取音视频播放时所需的播放凭证。
|
||||
* @param $videoId
|
||||
* @return mixed
|
||||
*/
|
||||
public function getVideoPlayAuth($videoId)
|
||||
{
|
||||
$request = new GetVideoPlayAuthRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
public function decryptKMSDataKey($CipherText){
|
||||
$request = new DecryptKMSDataKeyRequest();
|
||||
$request->setCipherText($CipherText);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace ShaoZeMing\AliVod\Services;
|
||||
use ShaoZeMing\AliVod\SDK\SubmitTranscodeJobsRequest;
|
||||
use ShaoZeMing\AliVod\SDK\GenerateKMSDataKeyRequest;
|
||||
|
||||
class TranscodeService extends BaseService
|
||||
{
|
||||
/**
|
||||
* 调用SubmitTranscodeJobs提交媒体转码作业,开始异步转码处理。
|
||||
* @param $videoId 视频ID
|
||||
* @param $TemplateGroupId 视频转码时使用的转码组ID
|
||||
* @return mixed
|
||||
*/
|
||||
public function submitTranscodeJobs($videoId,$TemplateGroupId,$EncryptConfig='')
|
||||
{
|
||||
$request = new SubmitTranscodeJobsRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$request->setTemplateGroupId($TemplateGroupId);
|
||||
if($EncryptConfig){
|
||||
$request->setEncryptConfig($EncryptConfig);
|
||||
}
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成一个随机的KMS数据密钥,用于视频点播标准加密。
|
||||
* @return mixed
|
||||
*/
|
||||
public function generateKMSDataKey(){
|
||||
$request = new GenerateKMSDataKeyRequest();
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询转码任务列表
|
||||
* @param $videoId
|
||||
* @return mixed
|
||||
*/
|
||||
public function getListTranscodeTask($videoId){
|
||||
$request = new ListTranscodeTaskRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
return $refreshInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace ShaoZeMing\AliVod\Services;
|
||||
|
||||
|
||||
use ShaoZeMing\AliVod\SDK\CreateUploadVideoRequest;
|
||||
use ShaoZeMing\AliVod\SDK\RefreshUploadVideoRequest;
|
||||
use ShaoZeMing\AliVod\SDK\UploadMediaByURLRequest;
|
||||
|
||||
class UploadService extends BaseService
|
||||
{
|
||||
|
||||
|
||||
/**获取视频上传凭证
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $title
|
||||
* @param $filename
|
||||
* @param $desc
|
||||
* @param $coverUrl
|
||||
* @param array $tags
|
||||
* @return mixed|\ShaoZeMing\Aliyun\Core\SimpleXMLElement
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
|
||||
*/
|
||||
public function createUploadVideo($title, $filename,$templateGroupId="",$storageLocation="", $desc = "", $coverUrl = "", array $tags = [])
|
||||
{
|
||||
$request = new CreateUploadVideoRequest();
|
||||
$request->setTitle($title);
|
||||
$request->setFileName($filename);
|
||||
if($desc){
|
||||
$request->setDescription($desc);
|
||||
}
|
||||
|
||||
if($coverUrl){
|
||||
$request->setCoverURL($coverUrl);
|
||||
}
|
||||
|
||||
if($templateGroupId){
|
||||
$request->setTemplateGroupId($templateGroupId);
|
||||
}
|
||||
|
||||
if($storageLocation){
|
||||
$request->setStorageLocation($storageLocation);
|
||||
}
|
||||
|
||||
|
||||
$tags = implode(',', $tags);
|
||||
$request->setTags($tags);
|
||||
$request->setAcceptFormat($this->acceptFormat);
|
||||
$uploadInfo = $this->client->getAcsResponse($request);
|
||||
|
||||
return $uploadInfo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 刷新视频上传凭证
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $videoId
|
||||
* @return mixed|\ShaoZeMing\Aliyun\Core\SimpleXMLElement
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
|
||||
*/
|
||||
public function refreshUploadVideo($videoId)
|
||||
{
|
||||
$request = new RefreshUploadVideoRequest();
|
||||
$request->setVideoId($videoId);
|
||||
$request->setAcceptFormat($this->acceptFormat);
|
||||
$refreshInfo = $this->client->getAcsResponse($request);
|
||||
|
||||
return $refreshInfo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* URL批量拉取上传
|
||||
* User: ZeMing Shao
|
||||
* Email: szm19920426@gmail.com
|
||||
* @param $url
|
||||
* @param $title
|
||||
* @return mixed|\ShaoZeMing\Aliyun\Core\SimpleXMLElement
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
|
||||
* @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
|
||||
*/
|
||||
public function uploadMediaByURL($url, $title)
|
||||
{
|
||||
|
||||
$request = new UploadMediaByURLRequest();
|
||||
$request->setUploadURLs($url);
|
||||
$uploadMetadataList = array();
|
||||
$uploadMetadata = array();
|
||||
$uploadMetadata["SourceUrl"] = $url;
|
||||
$uploadMetadata["Title"] = $title;
|
||||
$uploadMetadataList[] = $uploadMetadata;
|
||||
$request->setUploadMetadatas(json_encode($uploadMetadataList));
|
||||
return $this->client->getAcsResponse($request);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user