继上一篇上传,接着说下视频的删除功能,为什么没有修改呢,因为阿里云的修改api只是修改视频的id名和视频名称,不会更改存储的上传视频文件,所以我现在业务逻辑,修改的时候先添加视频获取视频id,修改完数据后再删除旧的,当然,感兴趣的可以去看看具体的api信息
image.png接下来我们看到服务端sdk,这里其实出现了新版和旧版的区别,我用的是旧版,新版composer安装了,但偷懒,没做接入,我先说下旧版,有时间再在结尾加上新版使用过程
看下图的两个文件,其实上一篇下载下来的上传sdk里面就包含了,当时没细看,后来写完发现了,可以直接在sdk文件里新建文件引用
image.png image.png集成方法还是放在common.php里面:
//阿里云视频点播删除接口
function deleteVideo($vid)
{
//删除接口是用的阿里云旧版服务端sdk,新版composer文档不清晰,云api参数跟文档不一致,暂时不采用
require_once '../public/alivod/ali.php';
//阿里云上传adk需要绝对路径,所以先存储本地,上传完成后再进行删除
$ali = new ali();
$data = $ali->delinit($vid);
return $data;
}
这个在public/alivod目录下,注意看上面截图
<?php
//阿里云删除视频
require_once './alivod/voduploadsdk/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
use vod\Request\V20170321 as vod;
class ali
{
//id
public $accessKeyId;
//secret
public $accessKeySecret;
// function __construct($accessKeyId,$accessKeySecret)
// {
// $this->accessKeyId = $accessKeyId;
// $this->accessKeySecret = $accessKeySecret;
// }
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai'; // 点播服务接入区域
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
/**
* 删除视频
* @param client 发送请求客户端
* @return DeleteVideoResponse 删除视频响应数据
*/
public function deleteVideos($client, $videoIds) {
$request = new vod\DeleteVideoRequest();
$request->setVideoIds($videoIds); // 支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
public function delinit($vid){
$accessKeyId='你的id';
$accessKeySecret='你的secret';
try {
$client = $this->initVodClient($accessKeyId, $accessKeySecret);
$delInfo = $this->deleteVideos($client, $vid);
return json_encode($delInfo->RequestId);
} catch (Exception $e) {
return 1;
}
}
}
网友评论