7e47ce238b
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
327 lines
13 KiB
PHP
327 lines
13 KiB
PHP
<?php
|
||
require_once 'aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
|
||
|
||
use vod\Request\V20170321 as vod;
|
||
use Sts\Request\V20150401 as Sts;
|
||
class AliyunVideo {
|
||
|
||
//private $accessKeyId = 'zsZ';
|
||
//private $accessKeySecret = 'myQkfV';
|
||
private $accessKeyId = 'LTAI4Fha7Z3YTrEARrmxHEFK';
|
||
private $accessKeySecret = 'PCuBxbWeMr8a2vPkfpopqdfmNOI4E0';
|
||
private $regionId = 'cn-shanghai'; // 点播服务所在的Region,国内请填cn-shanghai,不要填写别的区域
|
||
private $endpoint = 'sts.cn-shanghai.aliyuncs.com';
|
||
private $client = null ;
|
||
private $sts = null ;
|
||
|
||
public function __construct(){
|
||
|
||
try {
|
||
$this -> init_vod_client($this -> accessKeyId,$this -> accessKeySecret);
|
||
} catch (Exception $e) {
|
||
print $e->getMessage();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @desc 初始化客户端
|
||
* @param [type] $accessKeyId [description]
|
||
* @param [type] $accessKeySecret [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function init_vod_client($accessKeyId, $accessKeySecret) {
|
||
//初始化视频客户端
|
||
$profile = DefaultProfile::getProfile($this -> regionId, $accessKeyId, $accessKeySecret);
|
||
$this -> client = new DefaultAcsClient($profile);
|
||
//初始化sts授权策略客户端
|
||
DefaultProfile::addEndpoint($this -> regionId, $this -> regionId, "Sts", $this -> endpoint);
|
||
$iClientProfile = DefaultProfile::getProfile($this -> regionId, $accessKeyId, $accessKeySecret);
|
||
$this -> sts = new DefaultAcsClient($iClientProfile);
|
||
|
||
|
||
}
|
||
|
||
|
||
/**
|
||
* @desc 刷新视频上传凭证
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function refresh_upload_video( $videoId) {
|
||
$request = new vod\RefreshUploadVideoRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @desc [获取上传地址和凭证]
|
||
* @param [type] $client [description]
|
||
* @param array $fileInfo = array();
|
||
* @return [type] [description]
|
||
*/
|
||
public function create_upload_video($fileInfo) {
|
||
$request = new vod\CreateUploadVideoRequest();
|
||
|
||
$request->setTitle($fileInfo['title']); // 视频标题(必填参数)
|
||
$request->setFileName($fileInfo['filename']); // 视频源文件名称,必须包含扩展名(必填参数)
|
||
$request->setDescription($fileInfo['desc']); // 视频源文件描述(可选)
|
||
//$request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"); // 自定义视频封面(可选)
|
||
$userData = array(
|
||
"MessageCallback"=>array("CallbackURL"=>"https://demo.sample.com/ProcessMessageCallback"),
|
||
"Extend"=>array("localId"=>"xxx", "test"=>"www")
|
||
);
|
||
$request->setUserData(json_encode($userData));
|
||
if($fileInfo['thumb']){ $request -> setCoverURL($fileInfo['thumb']) ; }
|
||
if($fileInfo['catid']){ $request -> setCateId($fileInfo['catid']) ; }
|
||
if($fileInfo['tags']){
|
||
$request -> setTags($fileInfo['tags']);
|
||
}
|
||
$request->setAcceptFormat('JSON');
|
||
|
||
return $this -> client -> getAcsResponse($request);
|
||
}
|
||
|
||
|
||
/**
|
||
* @desc 获取播放地址接口
|
||
* @param [type] $client [为上面init_vod_client接口返回的客户端对象]
|
||
* @param [type] $videoId [为视频ID]
|
||
* @return [type] [description]
|
||
*/
|
||
public function get_play_info( $videoId) {
|
||
$request = new vod\GetPlayInfoRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
/**
|
||
* @desc 获取sts授权策略信息
|
||
* @author 646943067@qq.com
|
||
* @version 1.0
|
||
* @date 2018-11-27
|
||
*/
|
||
public function getStsInfo(){
|
||
$roleArn = "acs:ram::1357249633099392:role/aliyunvoduploadauth"; //角色资源描述符,在RAM的控制台的资源详情页上可以获取
|
||
// 在扮演角色(AssumeRole)时,可以附加一个授权策略,进一步限制角色的权限;
|
||
// 详情请参考《RAM使用指南》
|
||
// 此授权策略表示读取所有OSS的只读权限
|
||
$policy=<<<POLICY
|
||
{
|
||
"Statement": [
|
||
{
|
||
"Action": "sts:AssumeRole",
|
||
"Effect": "Allow",
|
||
"Principal": {
|
||
"RAM": [
|
||
"acs:ram::1357249633099392:root"
|
||
]
|
||
}
|
||
}
|
||
],
|
||
"Version": "1"
|
||
}
|
||
POLICY;
|
||
|
||
$request = new Sts\AssumeRoleRequest();
|
||
// RoleSessionName即临时身份的会话名称,用于区分不同的临时身份
|
||
// 您可以使用您的客户的ID作为会话名称
|
||
$request->setRoleSessionName("client_name");
|
||
$request->setRoleArn($roleArn);
|
||
$request->setPolicy($policy);
|
||
$request->setDurationSeconds(3600);
|
||
|
||
try {
|
||
$response = $this -> sts ->getAcsResponse($request);
|
||
print_r($response);
|
||
} catch(ServerException $e) {
|
||
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
|
||
} catch(ClientException $e) {
|
||
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @desc 删除媒体流
|
||
* 可删除视频流或音频流信息及存储文件,并支持批量删除;删除后当CDN缓存过期,该路流会无法播放,请谨慎操作
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoId [description]
|
||
* @param [type] $jobIds [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function delete_stream( $videoId, $jobIds) {
|
||
$request = new vod\DeleteStreamRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setJobIds($jobIds); // 媒体流转码的作业ID列表,多个用逗号分隔;JobId可通过获取播放地址接口(GetPlayInfo)获取到。
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
|
||
/**
|
||
* @desc 获取视频列表
|
||
* @param [type] $client [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function get_video_list() {
|
||
$request = new vod\GetVideoListRequest();
|
||
// 示例:分别取一个月前、当前时间的UTC时间作为筛选视频列表的起止时间
|
||
$localTimeZone = date_default_timezone_get();
|
||
date_default_timezone_set('UTC');
|
||
$utcNow = gmdate('Y-m-d\TH:i:s\Z');
|
||
$utcMonthAgo = gmdate('Y-m-d\TH:i:s\Z', time() - 30*86400);
|
||
date_default_timezone_set($localTimeZone);
|
||
$request->setStartTime($utcMonthAgo); // 视频创建的起始时间,为UTC格式
|
||
$request->setEndTime($utcNow); // 视频创建的结束时间,为UTC格式
|
||
#$request->setStatus('Uploading,Normal,Transcoding'); // 视频状态,默认获取所有状态的视频,多个用逗号分隔
|
||
#$request->setCateId(0); // 按分类进行筛选
|
||
$request->setPageNo(1);
|
||
$request->setPageSize(20);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
|
||
/**
|
||
* @desc 获取源文件信息(含原片下载地址)
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function get_mezzanine_info( $videoId) {
|
||
$request = new vod\GetMezzanineInfoRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setAuthTimeout(3600*5); // 原片下载地址过期时间,单位:秒,默认为3600秒
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 删除视频
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoIds [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function delete_videos( $videoIds) {
|
||
$request = new vod\DeleteVideoRequest();
|
||
$request->setVideoIds($videoIds); // 支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 修改视频信息
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function update_video_info( $videoId) {
|
||
$request = new vod\UpdateVideoInfoRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setTitle('New Title'); // 更改视频标题
|
||
$request->setDescription('New Description'); // 更改视频描述
|
||
$request->setCoverURL('http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png'); // 更改视频封面
|
||
$request->setTags('tag1,tag2'); // 更改视频标签,多个用逗号分隔
|
||
$request->setCateId(0); // 更改视频分类(可在点播控制台·全局设置·分类管理里查看分类ID:https://vod.console.aliyun.com/#/vod/settings/category)
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 获取视频信息
|
||
* @param [type] $client [description]
|
||
* @param [type] $videoId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function get_video_info( $videoId) {
|
||
$request = new vod\GetVideoInfoRequest();
|
||
$request->setVideoId($videoId);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 获取指定的分类信息,及其子分类(即下一级分类)的列表
|
||
* @param [type] $client [description]
|
||
* @param integer $cateId [description]
|
||
* @param integer $pageNo [description]
|
||
* @param integer $pageSize [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function get_categories( $cateId=-1, $pageNo=1, $pageSize=10) {
|
||
$request = new vod\GetCategoriesRequest();
|
||
$request->setCateId($cateId); // 分类ID,默认为根节点分类ID即-1
|
||
$request->setPageNo($pageNo);
|
||
$request->setPageSize($pageSize);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
|
||
/**
|
||
* @desc 删除分类
|
||
* 删除视频分类,同时会删除其下级分类(包括二级分类和三级分类),请慎重操作
|
||
* @param [type] $client [description]
|
||
* @param [type] $cateId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function delete_category( $cateId) {
|
||
$request = new vod\DeleteCategoryRequest();
|
||
$request->setCateId($cateId);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 修改分类
|
||
* @param [type] $client [description]
|
||
* @param [type] $cateId [description]
|
||
* @param [type] $cateName [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function update_category( $cateId, $cateName) {
|
||
$request = new vod\UpdateCategoryRequest();
|
||
$request->setCateId($cateId);
|
||
$request->setCateName($cateName); // 分类名称,不能超过64个字节,UTF8编码
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
/**
|
||
* @desc 创建分类
|
||
* 1.创建视频分类,最大支持三级分类,每个分类最多支持创建100个子分类
|
||
* 2.一级分类最大也是支持100个,若有更大需求请提工单联系我们
|
||
* @param [type] $client [description]
|
||
* @param [type] $cateName [description]
|
||
* @param integer $parentId [description]
|
||
*/
|
||
function add_category( $cateName, $parentId=-1) {
|
||
$request = new vod\AddCategoryRequest();
|
||
$request->setCateName($cateName); // 分类名称,不能超过64个字节,UTF8编码
|
||
$request->setParentId($parentId); // 父分类ID,若不填,则默认生成一级分类,根节点分类ID为-1
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
/**
|
||
* @desc 获取图片上传地址和凭证
|
||
* @param [type] $client [description]
|
||
* @param [type] $imageType [description]
|
||
* @param [type] $imageExt [description]
|
||
* @return [type] [description]
|
||
*/
|
||
function create_upload_image( $imageType, $imageExt) {
|
||
$request = new vod\CreateUploadImageRequest();
|
||
$request->setImageType($imageType);
|
||
$request->setImageExt($imageExt);
|
||
$request->setAcceptFormat('JSON');
|
||
return $this -> client ->getAcsResponse($request);
|
||
}
|
||
|
||
} |