继上一篇上传,接着说下视频的删除功能,为什么没有修改呢,因为阿里云的修改api只是修改视频的id名和视频名称,不会更改存储的上传视频文件,所以我现在业务逻辑,修改的时候先添加视频获取视频id,修改完数据后再删除旧的,当然,感兴趣的可以去看看具体的api信息
接下来我们看到服务端sdk,这里其实出现了新版和旧版的区别,我用的是旧版,新版composer安装了,但偷懒,没做接入,我先说下旧版,有时间再在结尾加上新版使用过程
看下图的两个文件,其实上一篇下载下来的上传sdk里面就包含了,当时没细看,后来写完发现了,可以直接在sdk文件里新建文件引用
集成方法还是放在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; } }}
作者:道翼
链接:https://www.jianshu.com/p/889b15c3afb5
上一篇: 《建站管家》二次开发文档