Kevin's blog Kevin's blog
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Kevin

Java系统笔记
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 项目 在线教育

    • 项目简介

    • Mybatis Plus入门

    • 课程中心微服务搭建

    • 前后端分离相关知识

    • 后台管理系统前端页面的搭建

    • 整合阿里云OSS文件上传

    • 使用POI实现Excel导入导出

    • 整合POI实现课程类目管理

    • 课程基本信息管理

    • 课程章节信息管理

    • 课程课时管理

    • 使用阿里云视频点播

      • 视频点播简介
      • 使用服务端API
        • 一、准备工作
          • 1、设置不转吗
          • 2、给子账户添加授权
          • 3、找到子账户的AccessKey ID
          • 4、阅读文档
        • 二、创建和初始化项目
          • 1、创建maven项目 aliyun-vod 2、添加Maven仓库
          • 3、复制调用示例
          • api请求原理
          • 4、创建测试类
          • 5、测试获取视频播放凭证
          • 6、测试获取视频播放地址
      • 使用服务端SDK
      • 视频安全
      • 文件上传测试
      • 视频播放测试
    • 媒资管理

    • spring cloud服务发现和服务调用

    • 整合ECharts实现统计分析

    • 服务端渲染NUXT

    • 整合阿里云播放器

    • 微服务安全

    • 整合微信登录

    • spring cloud zuul 微服务网关在项目中的应用

    • 总结

  • 项目 谷粒商城

  • 项目 谷粒商城详细开发文档

  • Project
  • 项目 在线教育
  • 使用阿里云视频点播
zhihuanwang
2023-09-25
目录

使用服务端API

# 一、准备工作

# 1、设置不转吗

测试之前现在 全局设置->转码设置 中设置“不转码”,以节省开发成本

# 2、给子账户添加授权

img

# 3、找到子账户的AccessKey ID

# 4、阅读文档

服务端API->调用方式

简单了解公共参数、返回结果、签名机制的概念

简单了解私有参数的概念

# 二、创建和初始化项目

# 1、创建maven项目 aliyun-vod 2、添加Maven仓库

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.1</version>
    </dependency>
    
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3、复制调用示例

文档:服务端API->调用方式->调用示例

填入必要参数运行程序

根据调用示例创建AliyunVodAPIUtils.java,将入下非通用部分提取出来,其余部分放入工具类,相关方法设置为public

package com.atguigu.aliyunvod;

import com.atguigu.aliyunvod.util.AliyunVodAPIUtils;

import java.util.HashMap;
import java.util.Map;
/**
 * 视频点播OpenAPI调用示例
 * 以GetVideoPlayAuth接口为例,其他接口请替换相应接口名称及私有参数
 */
public class Main {

    public static void main(String[] args) throws Exception {
        //生成私有参数,不同API需要修改
        Map<String, String> privateParams = generatePrivateParamters();
        //生成公共参数,不需要修改
        Map<String, String> publicParams = AliyunVodAPIUtils.generatePublicParamters();
        //生成OpenAPI地址,不需要修改
        String URL = AliyunVodAPIUtils.generateOpenAPIURL(publicParams, privateParams);
        //发送HTTP GET 请求
        AliyunVodAPIUtils.httpGet(URL);
    }
    /**
     * 生成视频点播OpenAPI私有参数
     * 不同API需要修改此方法中的参数
     * @return
     */
    private static Map<String, String> generatePrivateParamters() {
        // 接口私有参数列表, 不同API请替换相应参数
        Map<String, String> privateParams = new HashMap<>();
        // 视频ID
        privateParams.put("VideoId","你上传至视频点播的视频id");
        // API名称
        privateParams.put("Action", "GetVideoPlayAuth");
        return privateParams;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

#

# api请求原理

查看控制台的日志输出

(1)CanonicalizedQueryString:将所有私有参数和公共参数按首字母顺序组装成url查询字符串

(2)StringtoSign:将参数和参数值按照规则编码,构造签名字符串

(3)Signature:使用SHA1算法计算签名字符串的HMAC值,并进行Base64编码,最后得到签名值(Signature)

(4)发送http请求:将签名值(Signature)附加到前面的QueryString的最后,向vod api服务器发送请求

# 4、创建测试类

创建VodApiTest.java

package com.atguigu.aliyunvod;

public class VodApiTest {

}
1
2
3
4
5

# 5、测试获取视频播放凭证

/**
     * 获取视频播放凭证
     * @throws Exception
     */
@Test
public void testGetVideoPlayAuth() throws Exception {
    // 接口私有参数列表, 不同API请替换相应参数
    Map<String, String> privateParams = new HashMap<>();
    // 视频ID
    privateParams.put("VideoId","你上传至视频点播的视频id");
    // API名称
    privateParams.put("Action", "GetVideoPlayAuth");

    //生成公共参数,不需要修改
    Map<String, String> publicParams = AliyunVodAPIUtils.generatePublicParamters();
    //生成OpenAPI地址,不需要修改
    String URL = AliyunVodAPIUtils.generateOpenAPIURL(publicParams, privateParams);
    //发送HTTP GET 请求
    AliyunVodAPIUtils.httpGet(URL);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 6、测试获取视频播放地址

@Test
public void testGetPlayInfo() throws Exception {

    // 接口私有参数列表, 不同API请替换相应参数
    Map<String, String> privateParams = new HashMap<>();

    // 视频ID
    privateParams.put("VideoId","你上传至视频点播的视频id");
    // API名称
    privateParams.put("Action", "GetPlayInfo");

    .......
}
1
2
3
4
5
6
7
8
9
10
11
12
13
编辑 (opens new window)
上次更新: 2024/06/15, 15:12:25
视频点播简介
使用服务端SDK

← 视频点播简介 使用服务端SDK→

最近更新
01
04.Spring Boot 韩顺平
10-12
02
day14
08-29
03
day09
08-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式