服务端 API 文档

子应用体系

最近更新时间:2020-06-28 17:06:54

概述

为了使开发者能够在云点播中实现资源隔离,云点播提供了子应用特性。子应用是云点播的一个内部概念,是一种资源划分的方式,一个子应用的外在表现类似于一个独立的云点播账号。在创建子应用后,点播资源的归属形式如下图所示:

说明:

本文所说的资源包括云点播中的媒体文件及其属性、由媒体文件衍生的其它文件、各类配置、CDN 域名、使用点播服务产生的统计信息等。

应用场景

云点播子应用的典型应用场景如下:

  • 多部门/多业务隔离:某企业基于腾讯云开发自有产品,其中 A 部门需要使用云点播来开发一款短视频 App,B 部门则使用云点播来开发一个影视网站。这两个点播业务需要相互隔离,但出于财务管理的考虑,该企业无法为 A 和 B 部门分别开通一个独立的腾讯云账号。这时就可以使用云点播的子应用特性,为 A 和 B 部门各分配一个子应用。
  • 权限控制:在上面的多部门/多业务隔离场景中,开发者可能会有更进一步的权限控制要求,例如要求每个部门仅能访问和自己业务关联的子应用,而无权限访问其它子应用。这时,账号管理者可以分别为 A 和 B 部门各分配一个子用户,并授予相应的云点播子应用访问权限。操作详情请参见 访问管理
  • 区分正式环境和测试环境:开发者想对某些点播特性进行测试,又担心会影响线上运营(例如修改 事件通知 方式,或者开启 防盗链 等)。开发者可以为正式环境和测试环境各开通一个子应用,新特性先在测试环境进行验证,确认无误后再变更线上环境。

身份定义和标识

子应用体系中有三类身份:管理员、主应用和子应用,我们结合下图来说明它们的定义。

  1. 开发者开通云点播服务后,默认是主应用身份,此时所有的点播资源都归属于主应用。主应用的标识符为开发者的腾讯云 APPID,可在控制台的【账号信息】中查看。
  2. 开发者开通云点播子应用功能后,会另外生成一个管理员身份。管理员并不拥有任何点播资源,所有资源仍然属于主应用。
  3. 开发者使用管理员身份创建一个子应用,新建的子应用拥有独立的点播资源,它和主应用的地位平等且相互隔离,可以将主应用理解为一个特殊的子应用。创建子应用时,云点播会为子应用分配一个全平台唯一的标识符,称为子应用 ID,查看方式请参见 控制台使用说明 - 应用管理
  4. 开发者使用管理员身份再次创建一个子应用,这个新建的子应用也拥有独立的点播资源,它与主应用、其它子应用的地位平等且相互隔离,依此类推。
说明:

如无特殊说明,下文不再区分主应用和子应用,统一用子应用来表述。

能力

云点播子应用体系提供以下能力:

  • 创建及设置子应用:开发者开通云点播子应用功能后,能够以管理员身份在控制台上创建子应用,并为每个子应用设置名称和描述。
  • 停用子应用:除主应用外,其它子应用可以停用。停用操作不会清理子应用下的点播资源,只会禁用其域名,其余功能(上传、转码等)不受影响。
  • 资源隔离:子应用与子应用之间的点播资源相互隔离。
  • 通过控制台或者服务端 API 操作任一个子应用的点播资源。
  • 为每一个子应用生成单独的数据统计信息,包括存储、带宽/流量、转码时长、视频审核时长、播放数据等。
  • 为所有子应用生成汇总的数据统计信息。

限制

云点播子应用体系具有以下限制:

  • 不支持修改主应用的名称和描述。
  • 不支持删除子应用。
  • 每个云点播账号最多可以创建50个子应用。
  • 不支持为子应用设置单独的计费逻辑(如设置计费方式、单独生成账单、购买专用资源包等)。一个云点播账号下的所有子应用都归属于同一个云点播账号,所有子应用的点播用量(包括但不限于存储、流量、转码时长、视频审核时长等云点播计费项)都会进行合并计算,统一收费。

控制台使用说明

开通子应用

  1. 登录 云点播控制台
  2. 单击左侧导航栏的【开通子应用】,进入开通页面。
  3. 单击该页面的【立即使用】,即可开通云点播子应用功能。
说明:

如果已开通子应用功能,则左侧导航栏的【开通子应用】将不可见。

选择身份

开通子应用功能后,云点播控制台 的左上角会出现一个身份选择下拉框,开发者可以在这里选择身份。如果开发者刚开通子应用功能,则下拉框内只有两个选项:【管理员】和【主应用】;如果开发者新创建子应用后,下拉框会新增对应的身份选项。

管理员

在管理员身份下,左侧导航栏包括【服务概览】、【应用管理】、【短视频 License】和【资源包/插件管理】。

  • 服务概览:该页面展示开发者的云点播计费方式、所有子应用汇总后的关键业务数据以及各子应用的关键业务数据。
  • 应用管理:该页面可以查看、创建、编辑和停用子应用。各个子应用的标识符(子应用 ID)也在此页面展示。
  • 资源包/插件管理:该页面可以查看购买资源包和插件的使用情况。
说明:

月结计费的用户不支持使用资源包(已有的资源包处于“已冻结”状态)。切换回日结方式后,如果资源包未到期,则会自动解冻,用户可继续使用。

子应用

在子应用身份下,云点播控制台的使用方法和未开通子应用功能时几乎完全一致,用户可以查看和操作归属于该子应用的点播资源。两者的主要区别在于子应用没有自己的计费配置。

服务端 API 使用说明

在开通云点播子应用功能后,开发者在使用 云点播服务端 API 时需要指定访问的是哪个子应用的资源。

在服务端 API 中指定子应用

云点播服务端 API 已经升级为 云 API 3.0 版本,用户可以在各个 API 的SubAppId参数中指定所要访问的子应用。如果要访问的是主应用,既可以填写主应用的标识符,也可以不填。

在服务端 API 2017 中指定子应用

服务端 API 2017 也支持子应用,使用时需要在请求中增加一个SubAppId参数(注意大小写),该参数与服务端 API 2017 的 公共请求参数 平级,其值为子应用 ID。如果要访问的是主应用,既可以填写主应用的标识符,也可以不填。

说明:

  • 服务端 API 2017 的文档并未暴露SubAppId参数,但不影响使用该参数。
  • SubAppId参数也要参与服务端 API 的签名计算,计算规则不变。

文件上传说明

在开通云点播子应用功能后,开发者在上传媒体文件到云点播时需要指定上传到哪个子应用下。

直播录制

直播录制 支持录制到指定的子应用,指定方法为在直播推流参数中增加vod_sub_app_id=xxxxxx指子应用 ID)。如果要录制到主应用,不带该参数即可。

服务端上传

服务端上传 支持上传到指定的子应用,具体的参数填写方法见下方链接。如果要上传到主应用,既可以填写主应用的标识符,也可以不填。

SDK 方式

服务端 API 方式

使用 API 方式进行上传时涉及到 ApplyUploadCommitUpload 两个接口,具体用法请参见 在服务端 API 中指定子应用
我们强烈建议使用 SDK 来进行上传。

客户端上传

客户端上传 支持上传到指定的子应用,指定方法为在 客户端上传签名 中增加一个参数:vodSubAppId=xxxxxx指子应用 ID)。如果要上传到主应用,既可以填写主应用的标识符,也可以不填。

说明:

vodSubAppId参数也要参与客户端上传签名计算,计算规则不变。

URL 拉取上传

URL 拉取视频上传支持上传到指定的子应用。

权限管理

云点播已接入访问管理 CAM,支持子应用维度的授权,详情请参见 访问管理

FAQ

开通子应用功能后,是否影响线上原有的业务逻辑?

不影响。子应用体系在设计时考虑了兼容性,所有的服务端 API 接口在不指定子应用 ID 时,默认为操作主应用。

开通子应用功能是否收费?

子应用功能本身是免费的,但每个子应用所产生的消耗都将计入该云点播账号,并按云点播 计费逻辑 进行计费。

我们使用子应用功能来实现业务隔离,那么各业务该如何进行内部结算/成本分摊?

如上文 限制 的说明,云点播只为整个账号出一份汇总的账单。如果开发者内部多个业务需要进行成本分摊,那么可以基于云点播提供的子应用维度的统计数据,自行定义并计算内部成本分摊。

开发者被停服会对子应用有什么影响?

开发者的云点播服务发生 欠费停服 时,该账号下所有的子应用都会被停服。

我可以把归属于某个子应用的视频迁移到另一个子应用吗?

子应用之间的资源是隔离的,无法迁移。

目录