在之前的文章中: 阿里云视频点播上传视频和获取视频播放地址,介绍了后端上传视频和上传完成后获取播放地址交由前端点击播放地址进行播放。

本文将通过获取上传凭证来上传视频,这种方式更好

共分为几下几步:

一、通过角色获取临时身份凭证(STS Token)

二、使用临时身份凭证获取获取上传地址,上传凭证等信息

三、使用上传地址和凭证等信息将由前端进行上传

下面开始细说上面的三大步:

在开始之前请先到阿里云的RAM访问控制完成用户及角色创建、开通视频点播功能,并完成设置

一、通过角色获取临时身份凭证(STS Token)

参考官方文档: 创建RAM角色并进行STS临时授权、 获取临时身份凭证

#!/usr/bin/env python
#coding=utf-8from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdksts.request.v20150401.AssumeRoleRequest import AssumeRoleRequestcredentials = AccessKeyCredential('你的AccessKey ID', '你的AccessKey Secret') # 在RAM访问控制中创建的用户里创建这两个值(不要使用阿里云主账号的AccessKey)
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-shanghai', credential=credentials)request = AssumeRoleRequest()
request.set_accept_format('json')
policy_text = '{"Version": "1","Statement": [{"Action": "vod:*","Resource": "*","Effect": "Allow"}]}'
request.set_RoleArn("acs:ram::1745xxxx24070:role/vxxxxcess")  # 在RAM访问控制中的角色里获取ARN
request.set_RoleSessionName("session-name")
request.set_Policy(policy_text)  # 权限策略
request.set_DurationSeconds(3600)  # 过期时间response = client.do_action_with_exception(request)
# python2:  print(response)
print(str(response, encoding='utf-8'))

代码中的注释有更详细的说明及注意点

返回结果:在返回结果中有了我们要的临时身份凭证AccessKeyId,AccessKeySecret和SecurityToken

二、使用临时身份凭证获取获取上传地址,上传凭证等信息

参考官方文档: STS初始化、 获取音/视频上传地址和凭证


from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest
import json
import traceback
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential# 填入STS信息
def init_vod_client(accessKeyId, accessKeySecret, securityToken):regionId = 'cn-shanghai'   # 点播服务接入地域connectTimeout = 3         # 连接超时,单位为秒credential = StsTokenCredential(accessKeyId, accessKeySecret, securityToken)return AcsClient(region_id=regionId, auto_retry=True, max_retry_time=3, timeout=connectTimeout, credential=credential)def create_upload_video(clt):request = CreateUploadVideoRequest.CreateUploadVideoRequest()request.set_Title('支部简介替换111')  # 设置文件名request.set_FileName('F:/Download/支部简介替换.mp4')  # 文件地址目录request.set_Description('这是视频的描述')# CoverURL示例:"http://192.168.0.1/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"# request.set_CoverURL('<your Cover URL>')# request.set_Tags('tag1,tag2')# request.set_CateId(0)request.set_accept_format('JSON')response = json.loads(clt.do_action_with_exception(request))return responsetry:clt = init_vod_client('临时身份凭证AccessKeyId', '临时身份凭证AccessKeySecret', '临时身份凭证SecurityToken')uploadInfo = create_upload_video(clt)print(uploadInfo['UploadAuth'])  # 上传凭证print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))  # 包括上传凭证的所有信息except Exception as e:print(e)print(traceback.format_exc())

在上面代码返回的结果中包括了我们需要的UploadAddress(上传地址)、UploadAuth(上传凭证)VideoId(视频ID号)

运行完成之后在视频点播页面中就可以看到状态为上传中的视频了,这个时候我们需要将UploadAddress(上传地址)、UploadAuth(上传凭证)VideoId(视频ID号)交给前端,由前端完成上传。

三、使用上传地址和凭证等信息交由前端进行上传

前端示例demo代码下载: 前端上传代码

手动将前端部分代码修改为后端返回的UploadAddress(上传地址)、UploadAuth(上传凭证)VideoId(视频ID号)

请将前端代码uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId) 中的uploadAuth, uploadAddress, videoId参数替换为后端返回的值进行运行前端代码测试上传功能(原先动态axios获取的代码先注释掉)

运行起来的前端页面展示:

上传完成:

视频点播中再次查看,状态已显示正常

手把手教你阿里云视频点播使用上传凭证上传视频(STS Token的方式)相关推荐

  1. 手把手教你阿里云钉钉智能前台如何实现0元购

    2017年5月开始阿里巴巴旗下阿里云公司推出唯一 一款针对用户的幸运券,这款幸运券就是大家俗称的优惠券了.目前钉钉智能前台m1已经上升为钉钉智能前台m2了,它们属于钉钉考勤机系列. 这款优惠券支持阿里 ...

  2. 阿里云视频点播-URL批量拉取上传(调整为多个视频上传)

    阿里云视频点播之URL批量拉取上传(调整为多个视频上传) 项目引入阿里云视频点播PHP-SDK URL批量拉取上传(调整为多个视频上传) 项目引入阿里云视频点播PHP-SDK 背景:2021年乐视云的 ...

  3. 手把手教你阿里云如何进行网站备案(图文教程)

    备案前准备: 注册账号--备案前您需要拥有一个阿里云账号(支付宝账户可直接登录) 域名准备--备案前需完成域名注册及实名认证 服务器准备--购买阿里云大陆境内服务器,或获取服务器的备案服务号 备案负责 ...

  4. 手把手教你阿里云服务器的购买及环境搭建

    1.服务器相关 程序员都需要一个自己的服务器! 用于发布自己的网站和项目! 用于操作系统的练习! 将自己的远程仓库.远程数据库.远程tomcat- 搭建在服务器上! 用于Linux进行任意的环境部署操 ...

  5. Spring Boot集成阿里云视频点播服务的过程记录

    阿里云视频点播 效果预览 视频点播 视频点播概述 功能 优势 流程 环境准备 开通视频点播 创建RAM用户并授权 上传SDK 上传流程 下载上传SDK 安装上传SDK 集成Java上传SDK 异常说明 ...

  6. 阿里云视频点播——企业服务

    阿里云-视频点播(ApsaraVideo VoD,简称VoD)是集视频采集.编辑.上传.媒体资源管理.自动化转码处理(窄带高清™).视频审核分析.分发加速于一体的一站式音视频点播解决方案. 我的视频点 ...

  7. 知识付费阿里云视频点播功能

    阿里云视频点播(VOD)是集音视频上传.自动化转码处理.媒体资源管理.分发加速于一体的全链路音视频点播服务.借助灵活.可伸缩的存储.处理及内容分发服务,帮助企业和开发者快速搭建安全.弹性.高可定制的点 ...

  8. PHP对接阿里云视频点播

    阿里云视频点播(VOD)是集音视频上传.自动化转码处理.媒体资源管理.分发加速于一体的全链路音视频点播服务.借助灵活.可伸缩的存储.处理及内容分发服务,帮助企业和开发者快速搭建安全.弹性.高可定制的点 ...

  9. 谷粒学院 —— 10、课程管理:整合阿里云视频点播

    目录 1.创建模块 1.1.引入视频点播所需依赖 1.2.application.properties 1.3.启动类 2.实现视频上传 2.1.后端 2.1.1.创建常量类 2.1.2.上传视频到阿 ...

最新文章

  1. Makefile_02:程序的编译和链接
  2. bert中文预训练模型_[中文医疗预训练模型] MC-BERT
  3. Java递归实现二分法
  4. boost::ratio_string相关的测试程序
  5. leetcode-217-存在重复元素
  6. mysql存储数据到cephfs_采用cephfs实现Elasticsearch数据持久化
  7. (转)linux上nginx源码编译安装
  8. Android 应用性能优化(4)---Android App性能评测分析-启动时间篇
  9. guava中Range的使用方法(com.google.common.collect.Range)
  10. ui-sref与$state.go()的使用
  11. Silverlight中的ControlTemplate
  12. 基于Matlab的车型识别(GUI界面)
  13. iperf3 for android8,iperf-3.0.7_android.zip
  14. 会计考计算机是WPS还是Ms,wps和office的区别 wps和office哪个好
  15. python 返回列表长度_Python通过len函数返回对象长度
  16. 国内国外最好的BT站点
  17. Pycharm使用技巧:Split Vertically/Horizontally(垂直/水平拆分窗口)
  18. 网络:以太网交换机、路由器
  19. 第四课:如何安装树莓派系统
  20. 韩寒郭敬明开启音乐精准营销时代

热门文章

  1. C语言实现灰度直方图
  2. 10G数据,1G内存,如何排序?
  3. OGG-00446的解决方法:
  4. 【FPGA——基础篇】如何理解时序电路
  5. 烽火通信春招初面总结
  6. 起风了,总起 -- 2022.9.26
  7. 小白跑deep snake(巨详细)
  8. MySQL8.0.20版本下载+安装(OS要求win10)
  9. vue中如何使用echarts——以折线图为例
  10. 数据库的优化以及如何提高数据库性能