课程管理-删除视频接口 | 学习笔记

简介: 简介:快速学习课程管理-删除视频接口

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-删除视频接口】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11410


课程管理-删除视频接口


目录:

一、 页面完成

二、 接口部分


一、 页面完成

第一个功能就是当我们上传完视频之后,点击上传视频后面的×号,就能把我们上传的视频删掉,同时阿里云中的视频也会消失。

这个功能要怎么做?

演示示例:

首先,打开 element,找到组件,找到上传组件 upload,此时我们可以看到“点击上传”,我们可以看到,他和我们用的组件一样,当我们点击上传时,我们就可以上传一个文件,在传完文件之后,我们可以看到,在每个文件后面,有一个×号,

此时,我们要的效果是,当我们点击×,这个视频被删掉。

接下来,当我们点击×号时,我们可以发现,他弹出一个确认框

当我们点击确定的时候,这个视频就被删掉了;如果点取消,就什么都不做,这就是我们要做到的效果。

对此,我们需要做个实践:首先要先在页面中把页面的效果写出来,然后我们再写它的接口部分。

在页面中找到 chapter 页面上传小节的部分,

<!- 添加和修改课时表单 -->

<el-dialog:ivisible.sync-"dialogVideoFormVisible"title-"添加课时">

<el-form : model="video" label-width="120px">

<el-form-item label="课时标题">

<el-input v-model="video.title"/>

</el-form-item>

<el-form-iten label-"课时排序">

在这里,我们找到上传组件,

<el-upload

:on-success-"handleVodUploadSuccess"

:on-remove="handleVodRemove"

:before-remove="beforeVodRemove"

:on-exceed="handleUploadExceed"

:file-list-"fileList"

:action-"BASE_ API+"/eduvod/video/uploadAlvivideo""

:limit="1"

class="upload-demo">

<el-button size="small" type="primary">上传视频</el-button>

<el-tooltip placement "right-end",

<div slot="content">最大支持1G,<br>

支持3GP、ASF、AVI、DAT、DV、FLV、F4v、<br>

GIF、M2T、M4V、MJ2、MJPEG、MKV、MOV、MP4、<br>

MPE、MPG、MPEG、MTS、OGG、QT、RM、RMVB、<br> SWF、TS、VOB、WMV、WEBM 等视频格式上传<div>

<i class "el-icon-question"">

<el-tooltip>

</el-upload>

</el-form-item>

上面的这个组件和下图的组件其实是一个组件,用的是一个。

image.png

那这个组件是怎么做到的?

我们之前学过,handleVodUploadSuccess 是上传成功,handleUploadExceed 这个是上传之前,然后我们可以看到,里边还有下面两种方法:

:on-remove="handleVodRemove"

:before-remove="beforeVodRemove"  

我们现在用的就是这两种方法

(1)点击×的时候,他就会调用这种方法,在这个方法中,我们可以写确认框,将确认框写入这个 beforeVodRemove中;

(2)当我们点击确认的时候,这个时候就会调用接口,把视频删掉。所以我们现在用的就是上面的两种方法。

写在下面:

methods:{

//点击确定会调用的方法

handleVodRemove(){

//调用接口的删除视频的方法

我们先来到页面中,点击添加小节,然后上传一个视频,

等视频上传之后,点击×号,看是否会弹出确认框,

可以看到,确认框是可以弹出的,然后我们点击取消,使用我们调用方法,将接口写出来。

}

第二种方法如上,方法名字是可以改变的,但等号左边的是固定的,我们需要看看示例代码,找到 handleVodRemove 方法,调用接口实现,

//点击×号会调用这个方法

beforeVodRemove(file, fileList){

return this.$confirm(`确定移除 ${ file.name }?`);

通过 file 得到文件名称

}

第一个方法如上,看示例代码得到 beforeVodRemove 方法,

beforeRemove(file, fileList){

他有两个参数,file代表文件,fileList 是文件列表,直接将代码复制过去。

return this.$confirm(`确定移除 ${ file.name }?`);

//上传视频成功调用的方法

handleVodUploadSuccess(response, file, fileList){

//上传视频id赋值

this.video.videoSourceld =response.data.videoId

//上传视频名称赋值

this.video.videoOriginalName= file.name

},

handleUploadExceed(){

this.$messagewarning("想要重新上传视频,请先删除已上传的视频')}

 

二、接口部分(删除视频的接口)

删除视频跟我们之前删的一样,之前在表里边删除数据,是根据 id 删除的,而现在也同样,因为视频有视频 id ,所以我们也要根据视频 id 删除视频,接下来,在接口处写一下方法。找到 vodcontral,写到 service_vod 中。

//根据视频 id 删除阿里云视频

删除方法一般用的 deleteMapping(),括号中传入视频的 id

deleteMapping(“removealiyunvideo/(id)“)

public R removealiyunvideo(pathvariable string id){

在方法中找得到视频id,加上一个注解,调阿里云中的一个过程并删掉,先给一个值,看一下阿里云的文档,在阿里云视频点播文档中查找,有一个删除云端视频

这个是删除阿里云文档的位置。

然后我们通过控制台,找到文档sdk,在服务端sdk中找到Javasdk,这里有一个媒资管理,点开我们会看到功能目录,找到删除视频的功能,进入我们可以看到是如何做到的。

跟之前的写法是差不多的,包括之前获取视频地址是一致的,我们可以看到是怎么做的,

第一步是创建初始化对象

第二步是创建 request 和对象,这里的 request 和其他的不一样,deleterequest,所以创建 request,在 request 中设置他的 id,可以有多个,不过我们目前只有一个 id,如果是多个 id,用逗号隔开

最后调用方法找我们的结果,这样的话我们的视频就可以删掉。

新建一个 utils,将 Java 中的 initobject 复制粘贴,放入到如下位置,

image.png

这个类的内容如下:

这个类中有一个静态方法,就是策划一个对象,我们直接传 id 密钥 accesskeyid 包括 cn-shanghai,做完第一部分,来到代码中,写下具体部分。

Try {

//初始化对象

DefaultAcsClientClient=Initialvodclient. Initvodclient(constantutils,ACCESS_KEY_ID,constantutils,ACCESS_KEY_ID) var

使用 Initialvodclient 类中的方法,方法中有两个值,之前我们将他们都放入了配置文件中,并且我们还写了一个工具类,所以我们直接用工具类去获取它的值,就是constantutils,ACCESS_KEY_ID,这是第一步

//创建删除视频 request 对象

DeleteVideoRequest request = new DeleteVideoRequest():

//想 request 设置视频 id

request.setVideolds(id);

//调用初始化对象的方法实现删除

client.getAcsResponse(request);

Return r ok():

它也会返回 response,但是这个对于我们来说没有什么用,不需要什么结果,我们直接调用方法就可以删除。正常的话就直接输出。

}catch(exception e){  捕获 exception,

按照我们的步骤写下

e.printStackTrace();

throw new GuliException(20001,"删除视频失败”):

如果我们删除失败,将异常写出,再抛出一个异常,这是我们写的一个接口,最后,我们就按照阿里云这个完成了视频删除。

在页面中调用这个接口,实现最终功能。

相关文章
|
10月前
|
存储
TienChin-课程管理-课程更新接口
TienChin-课程管理-课程更新接口
33 0
|
前端开发 API 数据库
课程管理-删除视频前端 | 学习笔记
简介:快速学习课程管理-删除视频前端
106 0
课程管理-删除视频前端 | 学习笔记
|
前端开发 数据库 开发者
课程管理-添加和删除小节 | 学习笔记
简介:快速学习课程管理-添加和删除小节
114 0
课程管理-添加和删除小节 | 学习笔记
|
Java Nacos 开发者
课程管理-删除小节删除视频(服务调用) | 学习笔记
简介:快速学习课程管理-删除小节删除视频(服务调用)
82 0
课程管理-删除小节删除视频(服务调用) | 学习笔记
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
115 0
课程管理-修改课程信息(后端) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
80 0
课程管理-修改课程信息(前端) | 学习笔记
|
前端开发 Java Nacos
课程管理-删除课程删除视频(最终测试) | 学习笔记
简介:快速学习课程管理-删除课程删除视频(最终测试)
94 0
课程管理-删除课程删除视频(最终测试) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(最终实现) | 学习笔记
简介:快速学习课程管理-修改课程信息(最终实现)
168 0
课程管理-修改课程信息(最终实现) | 学习笔记
|
开发者 微服务
课程管理-删除课程(后端) | 学习笔记
简介:快速学习课程管理-删除课程(后端)
192 0
课程管理-删除课程(后端) | 学习笔记
|
SQL 开发者 微服务
课程详情功能接口(2) | 学习笔记
简介:快速学习课程详情功能接口(2)
57 0
课程详情功能接口(2) | 学习笔记