趣视频服务端用于趣视频App与视频点播服务之间数据交互、业务逻辑处理及运营侧数据的管理。通过阅读本文,您可以了解到趣视频服务端的集成操作方法。

前提条件

操作步骤

上传源码
  1. 下载趣视频AppSever及管理控制台源码。下载地址,请参见趣视频Demo下载
  2. 在保存源文件的服务端执行以下命令,将源码文件上传到ECS服务端。执行以下命令,上传源码到ECS服务端。
    scp <源码文件> root@<ECS 服务端IP>:<上传后地址>
    scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip root@10.10.10.101:/root/workspace/

    ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip为源码文件 ,root为ECS服务器用户,10.10.10.101为ECS服务端IP地址,/root/workspace/为上传路径。

    说明 下文都以上述源码文件、ECS服务器用户、ECS服务端IP地址、上传路径等示例信息为例,在您实际操作时,根据您的实际情况设置即可。
  3. 登录ECS服务端,解压源码文件。
    cd /root/workspace
    unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip
    说明 如果没有安装unzip,需要先执行apt install unzip安装unzip。
初始化及配置数据库
说明 支持用户自行构建音乐库。
  • 最后用户返回的数据结构和阿里云服务获取音乐列表的数据结构需要一致,否则将会获取失败。
  • 使用自定义的数据结构,调整Demo层的代码逻辑。
  1. 创建名称为voddemo的数据库。

    cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql

    mysqladmin -u root -p create voddemo

  2. 创建表以及管理员账号。
    mysql -u root -p voddemo < ./appserver_create_table.sql
    说明 appserver_create_table.sql除了完成建表,还通过插入语句,创建了一个控制台管理员账号(用户名admin,密码123456),使用该账号可以在完成控制台集成后以管理员身份登录Demo控制台。
  3. 修改数据库的大小写检查规则。
    1. 编辑数据库的配置文件。

      vim /etc/mysql/mysql.conf.d/mysqld.cnf

    2. I键,在文件末尾增加lower_case_table_names=1
    3. Esc键,输入:wq!保存并退出。
    4. 重启完成数据库配置。

      service mysql restart

  4. 配置数据库地址。
    1. 编辑源码的配置文件。

      vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

    2. I键,按照如下修改。
      spring.datasource.url = jdbc:mysql://数据库IP地址(127.0.0.1):3306/数据库名(voddemo)?useSSL=false&useUnicode=true&characterEncoding=UTF-8
      spring.datasource.username = 数据库登录用户名,例如root
      spring.datasource.password = 数据库登录密码
      说明
      • 若数据库和服务端都运行在ECS,则数据库IP地址可以设置为127.0.0.1,否则要使用数据库所在机器的IP地址。
      • 数据库初始化中,创建的数据库名为voddemo。
    3. Esc键,输入:wq!保存并退出。
配置RAM角色
  1. 整体步骤与创建角色一致,完成第六步选择权限之后,后续步骤需按照下文操作。角色名根据您的实际需要自定义即可,本文以角色名alivc-demo-role为例介绍。
  2. RAM角色管理页面,单击创建好的RAM角色名称,例如:alivc-demo-role,可查询ARN。此处建议将RAM角色名称及ARN记录到本地,方便后续使用。
  3. RAM角色管理页面,单击创建好的RAM角色名称,例如:alivc-demo-role,单击信任策略管理页签,然后单击修改信任策略,将信任策略修改为如下:
    {
        "Statement": [
            {
                "Action": "sts:AssumeRole", 
                "Effect": "Allow", 
                "Principal": {
                    "Service": [
                        "ecs.aliyuncs.com"
                    ]
                }
            }
        ], 
        "Version": "1"
    }

    表示该角色为一个服务角色,受信云服务(ECS)可以扮演该角色。若未修改信任策略,该RAM角色将无法附加到ECS实例上。

    实例ID参数需要设置为["实例ID"]

  4. 将RAM角色附加到ECS实例上。

    在OpenAPI开发者门户使用ECS的AttachInstanceRamRole接口,更多信息请参见OpenAPI开发者门户

    说明
    • RegionId:ECS实例所在的地域ID,需要前往ECS控制台查询,如华东2(上海)。
    • RamRoleName:RAM角色的名称。本示例中为alivc-demo-role。
    • InstanceIds:需要附加RAM角色的服务端ECS实例ID,需要前往ECS控制台查询,ECS控制台查询,注意要以数组形式填写,如:["i-bp135jrddxxf9tgo****"]。

    单击发起调用,调用成功后可在右侧调试结果中看到success反馈。

  5. 在ECS终端执行以下命令,验证RAM角色和ECS实例是否关联成功。
    curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role
    若显示如下信息,表示STS临时授权返回成功,即RAM角色和ECS实例关联成功。
    {
    "AccessKeyId" : "STS.XXXXXXXXXXXX",
    "AccessKeySecret" : "XXXXXXXXXXXXXXXX",
    "Expiration" : "2020-11-20T14:33:31Z",
    "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX",
    "LastUpdated" : "2020-11-20T08:33:31Z",
    "Code" : "Success"
    }
    说明 每个ECS实例只可附加一个RAM角色,如果您需要更换RAM角色,需要在OpenAPI开发者门户中调用DetachInstanceRamRole,解除该ECS上的RAM角色附加后,再次使用AttachInstanceRamRole重新附加RAM角色。
  6. 配置RAM相关信息。
    1. 编辑源码的配置文件。

      vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

    2. I键,按照下方示例修改。
      roleArn = XXXXXXX:role/alivc-demo-role
      roleSessionName = vod-role
      roleName = alivc-demo-role
      server_config_03
      说明
      • REGION_CN_HANGZHOU表示VOD服务所在地域,如cn-shanghai代表华东2(上海)。
      • roleArn表示RAM角色控制台获取到的ARN。
      • roleSessionName表示临时Token的会话名称(自定义填写)。
      • roleName表示RAM角色控制台获取到的RAM角色名称,本示例中为alivc-demo-role。
    3. Esc键,输入:wq!保存并退出。
  7. 配置VOD。
    1. 编辑源码的配置文件。
      vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
    2. I键,按照如下修改。
      server_config_04
      参数名 是否必填 说明
      TEMPLATEGROUP_ID 转码模板组ID。详情请参见转码模板组
      LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID 长视频先发后审时使用的转码模板组。
      TAB_TEMPLATEGROUP_ID 窄带高清转码模板组ID,配置后可在控制台推荐窄带高清版视频(若不填,推荐窄带高清版视频会报错)。
      DOMAIN_NAME ECS服务器地址,本例中为http://10.10.10.101:8080/。
      AVATAR_DOMAIN_NAME 头像资源地址,即ECS服务器静态资源地址,本例中为http://10.10.10.101:8080/resource/
      AVATAR_URL 头像图片文件名列表,如1.png,2.png。
      说明 请将对应的头像图片文件1.png和2.png放入/root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource目录中。如果头像服务未配置会造成移动端用户无头像,不影响其他功能使用。
      VOD_REGIONID VOD服务所在区域,本例中为cn-shanghai。
      policy 在扮演角色的时候额外加上一个权限限制。更多信息,请参见基于RAM Policy实现自定义授权
      OPEN_API_URL 使用太合音乐DMH服务,请参见在线音乐方案
      说明 太合音乐DMH服务提供了短视频场景中在线音乐资源的能力。DMH服务涵盖不同曲风、万首高质量可转授歌曲,提供了SDK、API等对接方式。在线音乐有第三方费用,按调用次数计费,可直接和合作伙伴沟通。DMH商务联系方式:韩暄:hanxuan@taihe.com,电话:18610319065。
      Q_SOURCE
      CALLBACK_PRIVETEKEY 回调鉴权配置中的鉴权密钥,详情请参见回调设置
      CALLBACK_NAME 回调URL,即http://ECS公网IP地址:8080/vodcallback/callback。本例中为http://10.10.10.101:8080/vodcallback/callback。
      AUDIT_SETTINGS_FLAG 审查设置,默认值为on。取值:
      • on:先审后发。
      • off:先发后审。
      auth_key 视频直播服务配置,如果未配置,直播页面会显示暂无数据。目前该版本的趣视频服务端源码中未加入直播功能,如需使用请提交工单申请预览版源码。详情请参见。
      live_domain
      package_name 拦截器中的合法包名,多个包名使用英文逗号隔开。默认值为IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo。
      注意
      • com.aliyun.apsara.svideo为本示例Android端包名。
      • iOS端Bundle Identifier被注册会运行失败,需要自定义Bundle Identifier(如com.<公司名>.<项目名>),用于iOS端签名,并添加在package_name中保证访问合法。
      • 拦截器只允许带有合法包名的移动端App访问服务端,否则会造成移动端请求失败,例如提示Request failed:forbidden (403)。
    3. Esc键,输入:wq!保存并退出。
  8. 运行服务。
    1. 编译打包。
      cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226

      mvn clean package -Dmaven.test.skip=true

      说明
      • 如果没有安装maven,需要先执行apt install maven安装maven。
      • 具体打包时间视服务器带宽和性能而定。本例中第一次打包时间大约为30分钟。

      打包完成后,会在/root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/目录下生成 sdk-api-0.0.1-SNAPSHOT.jar文件。

    2. 部署jar包并启动服务。
      cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target

      nohup java -jar sdk-api-0.0.1-SNAPSHOT.jar &

      说明
      • 命令执行时会看到nohup提示,输入回车使程序进入后台运行。
      • 执行完之后会在当前目录下生成日志文件nohup.out,可通过cat nohup.out命令查看日志,若包含start success的字样,表示服务已启动成功。
      • 如果您购买的ECS内存较小,并且需要对服务端源码重新打包并部署,可执行jps命令查看当前正在运行的jar程序进程号,然后再执行kill -9 jar程序进程号关闭该进程,再重新打包并部署,否则会因为内存不足引起打包失败。