从客户端直接上传文件到点播存储(基于OSS)前,需要获取上传地址以及用于鉴权的凭证。本文介绍在客户端上传场景下如何获取上传地址和凭证,为初始化上传实例作准备。
背景信息
目前客户端上传SDK支持两种授权方式:
使用上传地址和凭证授权。
使用STS方式授权。
上传地址和凭证是视频点播服务下发的上传媒体文件到视频点播存储的文件地址和授权凭证。相对于STS方式,使用上传地址和凭证上传媒体文件拥有很多优势。更多信息,请参见凭证方式与STS方式对比。如需使用STS方式,请参见获取STS临时Token。
上传流程
客户端上传SDK封装了OSS上传逻辑。在客户端上传媒体文件时,会直接将文件上传到点播存储(基于OSS),不会再经服务端进行中转,故客户端上传必须进行鉴权,也就是需要您在应用服务器上部署授权服务以获取上传地址和凭证。目前客户端上传SDK支持两种授权方式:
使用上传地址和凭证授权:建议集成点播服务端SDK来获取上传地址和凭证。
使用STS方式授权:需要提前为RAM用户创建角色并授权,也需要自行搭建STS授权服务。
上传地址和凭证方式上传流程详解
以集成点播服务端SDK获取上传地址和凭证为例,完整的上传流程如下图所示:
用户在上传应用服务器部署授权服务(如集成点播服务端SDK)用于获取上传地址和凭证。
客户端向上传应用服务器发起请求获取上传地址和凭证。
上传应用服务器向视频点播服务发起请求获取上传地址和凭证。
点播服务返回上传地址和凭证。
说明点播服务在下发上传地址和凭证时还会自动创建媒资信息,即媒体ID(MediaId),用于媒资生命周期管理或媒体处理。
获取视频上传地址和凭证返回的
VideoId
即媒体ID。获取图片上传地址和凭证返回的
ImageId
即媒体ID。获取辅助媒资上传地址和凭证返回的
MediaId
即媒体ID。请妥善保存媒体ID,作为媒资管理、音视频播放、媒体处理等的输入。
上传应用服务器向客户端下发上传地址和凭证。
重要下发地址和凭证即可,无需Base64解码。
客户端使用上传地址和凭证初始化上传实例。
客户端构造上传参数发起上传请求。
OSS服务返回上传结果。
说明上传结果也可以通过提前配置回调接收上传相关事件来监听。
STS方式上传流程详解
使用STS方式上传的完整的流程如下图所示:
用户在上传应用服务器部署授权服务(如集成阿里云STS SDK)用于获取STS临时Token。
客户端向上传应用服务器发起请求获取STS临时Token。
上传应用服务器向阿里云STS服务发起请求获取STS临时Token。
阿里云STS服务返回上传地址和凭证。
上传应用服务器向客户端下发STS临时Token。
客户端使用STS临时Token初始化上传实例。
客户端构造请求发起上传请求。
OSS服务返回上传结果。
说明上传结果也可以通过提前配置回调接收上传相关事件来监听。
获取上传地址和凭证
为免去自行签名等麻烦,建议您以阿里云SDK调用视频点播的OpenAPI来获取上传地址和凭证。操作步骤根据使用的语言不同而不同。
文档中仅提供以V1.0版本的Java和Python语言的阿里云SDK调用视频点播的OpenAPI来获取上传地址和凭证的调用示例,其余语言以及V2.0 SDK的调用逻辑与之类似,请自行实现,具体操作,请参见服务端SDK。
调用语言 | 操作指引 |
Java | |
Python |
使用上传地址和凭证
上传地址和凭证与每个文件一一对应,因此需要在开始上传的回调里,去用户应用服务器获取并设置给对应的上传实例。具体设置因客户端不同而不同。
客户端 | 使用指引 |
Web | |
Android | |
iOS | |
微信小程序 |