This repository has been archived on 2026-06-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
wsh5485 7e47ce238b chore: 添加多个图片和资源文件
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
2025-06-15 13:04:37 +08:00

327 lines
13 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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); // 更改视频分类(可在点播控制台·全局设置·分类管理里查看分类IDhttps://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);
}
}