tencent cloud

云点播

动态与公告
产品动态
公告
产品简介
产品概述
产品特性
产品功能
产品优势
应用场景
解决方案
专业版
云点播专业版简介
快速入门
控制台指南
开发指南
购买指南
计费概述
计费方式
购买指引
账单查询
续费说明
欠费说明
退费说明
快速入门
控制台指南
控制台介绍
服务概览
应用管理
媒体管理
资源包管理
License 管理
实时日志分析
实践教程
媒体上传
如何将点播的媒体文件进行智能降冷
媒体处理
分发播放
如何接收事件通知
如何进行源站迁移
直播录制
如何进行自定义源站回源
直播精彩剪辑固化至云点播 VOD 指引
如何使用 EdgeOne 分发云点播内容
开发指南
媒体上传
媒体加工处理
媒体 AI
事件通知
媒体分发播放
媒体加密与版权保护
播放频道
访问管理
下载媒体文件
应用体系
错误码
播放器 SDK 文档
概述
基本概念
产品功能
Demo 体验
免费测试
购买指南
SDK 下载
License 指引
播放器教程
含 UI 集成方案
无 UI 集成方案
高级功能
API 文档
第三方播放器插件
Player SDK Policy
服务端 API 文档
History
Introduction
API Category
Other APIs
Media Processing APIs
Parameter Template APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
常见问题
移动端播放问题
费用相关问题
视频上传问题
视频发布问题
视频播放问题
Web 端播放问题
全屏播放问题
数据统计问题
访问管理相关问题
媒资降冷问题
相关协议
Service Level Agreement
VOD 政策
隐私政策
数据处理和安全协议
联系我们
词汇表

客户端上传签名

PDF
聚焦模式
字号
最后更新时间: 2024-05-16 14:48:59
客户端在发起上传前,需要向 App 的签名派发服务器申请上传签名。客户端执行上传操作时,必须携带该签名,以便云点播验证客户端的上传是否被授权。

签名生成步骤

1. 获取云 API 密钥 获取调用服务端 API 所需的安全凭证,即 SecretId 和 SecretKey,具体步骤如下:
2. 登录控制台,选择云产品 > 访问管理 > API 密钥管理,进入“API 密钥管理”页面。
3. 获取云 API 密钥。如果您尚未创建密钥,则单击新建密钥即可创建一对 SecretId 和 SecretKey。
4. 拼接明文串 original。
按照 URL QueryString 的格式要求拼接签名明文串 original,其格式如下:
secretId=[secretId]&currentTimeStamp=[currentTimeStamp]&expireTime=[expireTime]&random=[random]
注意:
上述 original 中的 [secretId][currentTimeStamp][expireTime][random] 需您自行替换成具体的参数值。
original 至少包含 secretIdcurrentTimeStampexpireTimerandom 四个必选参数,可包含任意多个选填参数,详细请参见 签名参数
参数值必须经过 UrlEncode,否则可能导致 QueryString 解析失败。
5. 将明文串转为最终签名(以部分 Java 代码为例)。
6. 用已获取的 SecretKey 对明文串 original 进行 HMAC-SHA1 加密,得到 signatureTmp:
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secretKey = new SecretKeySpec(this.secretKey.getBytes("UTF-8"), mac.getAlgorithm());
mac.init(secretKey);
byte[] signatureTmp = mac.doFinal(original.getBytes("UTF-8"));
说明:
signatureTmp 是使用 UTF-8 编码、通过 HMAC-SHA1 加密出来的字节数组
7. 将明文串 original 使用 UTF-8 编码成字节数组,然后把 signatureTmp 与该数组进行合并,最后把合并后的结果进行 Base64 编码,得到最终签名 signature:
String signature = base64Encode(byteMerger(signatureTmp, original.getBytes("utf8")));
说明:
byteMerger 和 base64Encode 分别是数组合并和 Base64 编码的方法,详细请参见 Java 签名示例代码

签名生成示例

云点播还提供了签名生成示例代码和签名工具,便于您参考和验证:

签名参数说明

参数名称
必选
类型
说明
secretId
String
云 API 密钥中的 SecretId,获取方式请参见 客户端上传指引 - 获取云 API 密钥
currentTimeStamp
Integer
当前 Unix 时间戳。
expireTime
Integer
签名到期 Unix 时间戳。<br/>expireTime = currentTimeStamp + 签名有效时长<br/>签名有效时长最大取值为7776000,即90天。
random
Integer
构造签名明文串的参数。十进制数,最大值4294967295(2^32-1,即32位无符号二进制数的最大值)。
classId
Integer
视频文件分类,默认为0。
procedure
String
视频后续任务处理操作,即完成视频上传后,可自动发起任务流操作。参数值为任务流模板名,云点播支持 创建任务流模板 并为模板命名。
taskPriority
Integer
视频后续任务优先级(仅当指定了 procedure 时才有效),取值范围为[-10,10],默认为0。
taskNotifyMode
String
任务流状态变更通知模式(仅当指定了 procedure 时才有效)。
Finish:只有当任务流全部执行完毕时,才发起一次事件通知。
Change:只要任务流中每个子任务的状态发生变化,都进行事件通知。
None:不接受该任务流回调。
默认为 Finish。
sourceContext
String
来源上下文,用于透传用户请求信息,上传完成回调 将返回该字段值,最长250个字符。
oneTimeValid
Integer
签名是否单次有效,详细请参见 客户端上传指引 - 单次有效签名
默认为0,表示不启用;1表示签名单次有效。
相关错误码详见 单次有效签名说明
vodSubAppId
Integer
子应用 ID,如果不填写、填写0或填写开发者的腾讯云 AppId,则操作的子应用为“主应用”。
sessionContext
String
会话上下文,用于透传用户请求信息,当指定 procedure 参数后,任务流状态变更回调 将返回该字段值,最长 1000 个字符。
storageRegion
String
指定存储地域,可以在控制台上自助添加存储地域,详细请参见 上传存储设置,该字段填写为存储地域的 英文简称

单次有效签名说明

使用单次有效签名后,签名服务器需要保证每次派发给用户的签名不相同(如保证同一个时间点派发的签名random不重复),否则会导致重复签名的错误。
签名错误导致的上传失败,如果重试,则需要获取新的签名。
Android 和 Java SDK 签名错误引起的错误状态码是1001

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈