全部产品
云市场

使用STS方式上传

更新时间:2019-03-14 13:59:00

简介

背景

开发指南-客户端上传里,介绍了客户端提供了两种授权方式上传到点播:

本文重点介绍使用STS方式进行上传的实现过程,但点播服务默认推荐使用上传地址和凭证上传其相比STS方式拥有诸多优势

STS介绍

STS (Security Token Service) 是阿里云通用的鉴权方式,通过STS方式上传,上传SDK内部会封装所有上传的细节,包括:获取上传地址和上传凭证的API调用,整体流程上用户只需要关注STS的获取、STS过期刷新以及文件上传完成回调即可。具体对STS的介绍文档请参考STS介绍

基本流程

STS上传

注意事项

  • 步骤2中业务服务APPServer发送请求从阿里云RAM/STS服务获取的STS,为了提高获取效率和避免RAM/STS服务对请求的流控限制需要在业务服务APPServer中对STS进行缓存。
  • 具体STS针对点播服务权限的相关配置详见下面的文档:点播服务的STS配置
  • 使用STS上传视频文件到点播时,必须在点播服务上创建好一个模版ID。

实现过程

  1. 控制台配置STS点播权限。详见:点播服务的STS配置
  2. 业务服务APPServer从STS服务获取STS。相关示例代码详见:点播服务STS获取示例代码
  3. 客户端从业务服务APPServer获取STS凭证。
  4. 客户端添加本地文件,并设置STS,开始上传。

设置STS

STS在初始化上传实例的时候进行设置,下面是iOS、Android、Web平台的相关初始化代码。

iOS示例代码

  1. [self.uploader
  2. init:`STS Key Id`
  3. accessKeySecret:`STS Key Secret`
  4. secretToken:STS Secret Token`
  5. expireTime:`STS Expire Time`
  6. listener:listener
  7. ];

Android示例代码

  1. VODUploadClient uploader = new VODUploadClientImpl(getApplicationContext());
  2. uploader.init(accessKeyId,
  3. accessKeySecret,
  4. secretToken,
  5. expireTime,
  6. callback);

H5 JS 示例代码

  1. var uploader = new AliyunUpload.Vod({
  2. partSize: 1048576,//分片大小默认1M,不能小于100K
  3. parallel: 5,//并行上传分片个数,默认5
  4. retryCount: 3,//网络原因失败时,重新上传次数,默认为3
  5. retryDuration: 2,//网络原因失败时,重新上传间隔时间,默认为2秒
  6. 'onUploadstarted': function (uploadInfo) {
  7. uploader.setSTSToken(uploadInfo, accessKeyId, accessKeySecret,secretToken);
  8. }
  9. …… //其他回调
  10. });

更多参考

上传文件列表管理,上传成功回调处理,凭证过期回调处理等可以阅读相关平台的上传SDK文档。