趣視頻服務端用於趣視頻App與ApsaraVideo for VOD服務之間資料互動、商務邏輯處理及營運側資料的管理。通過閱讀本文,您可以瞭解到趣視頻服務端的整合操作方法。
前提條件
您已經開通ECS服務並完成相關配置。更多資訊,請參見開通與配置ECS服務。
您已經在ECS服務端安裝JDK8。
您已經在ECS服務端安裝MySQL5.7資料庫。更多資訊,請參見安裝與配置MySQL資料庫。上線後建議使用RDS服務,更多資訊,請參見RDS服務。
您已經開通VOD服務並在控制台上配置好對應模板。配置步驟,請參見開通與配置VOD服務。
操作步驟
上傳源碼
下載趣視頻AppSever及管理主控台源碼。下載地址,請參見趣視頻SDK(短視頻解決方案)。
在儲存源檔案的服務端執行以下命令,將源碼檔案上傳到ECS服務端。執行以下命令,上傳源碼到ECS服務端。
scp <源碼檔案> user@<ECS 服務端IP>:<上傳後地址>
scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip user@10.0.0.0:/home/user/workspace/
ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip為源碼檔案 ,user為ECS伺服器使用者,10.0.0.0為ECS服務端IP地址,/home/user/workspace/為上傳路徑。
說明下文都以上述源碼檔案、ECS伺服器使用者、ECS服務端IP地址、上傳路徑等樣本資訊為例,在您實際操作時,根據您的實際情況設定即可。
登入ECS服務端,解壓源碼檔案。
cd /home/user/workspace
unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip
說明如果沒有安裝unzip,需要先執行sudo apt install unzip安裝unzip。
初始化及設定資料庫
支援使用者自行構建音樂庫。
最後使用者返回的資料結構和阿里雲服務擷取音樂列表的資料結構需要一致,否則將會擷取失敗。
使用自訂的資料結構,調整Demo層的代碼邏輯。
建立名稱為voddemo的資料庫。
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql
mysqladmin -u root -p create voddemo
建立表以及管理員帳號。
mysql -u root -p voddemo < ./appserver_create_table.sql
說明appserver_create_table.sql除了完成建表,還通過插入語句,建立了一個控制台管理員帳號(使用者名稱admin,密碼123456),使用該帳號可以在完成控制台整合後以管理員身份登入Demo控制台。
修改資料庫的大小寫檢查規則。
編輯資料庫的設定檔。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
按I鍵,在檔案末尾增加
lower_case_table_names=1。按Esc鍵,輸入:wq!儲存並退出。
重啟完成資料庫配置。
sudo service mysql restart
設定資料庫地址。
編輯源碼的設定檔。
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
按I鍵,按照如下修改。
spring.datasource.url = jdbc:mysql://資料庫IP地址(127.0.0.1):3306/資料庫名(voddemo)?useSSL=false&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username = 資料庫登入使用者名稱,例如admin spring.datasource.password = 資料庫登入密碼說明若資料庫和服務端都運行在ECS,則資料庫IP地址可以設定為127.0.0.1,否則要使用資料庫所在機器的IP地址。
資料庫初始化中,建立的資料庫名為voddemo。
按Esc鍵,輸入:wq!儲存並退出。
配置RAM角色
整體步驟與建立角色一致,完成第六步選擇許可權之後,後續步驟需按照下文操作。角色名稱根據您的實際需要自訂即可,本文以角色名稱alivc-demo-role為例介紹。
在RAM角色管理頁面,單擊建立好的RAM角色名稱,例如:alivc-demo-role,可查詢ARN。此處建議將RAM角色名稱及ARN記錄到本地,方便後續使用。
在RAM角色管理頁面,單擊建立好的RAM角色名稱,例如:alivc-demo-role,單擊信任策略管理頁簽,然後單擊修改信任策略,將信任策略修改為如下:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }表示該角色為一個服務角色,受信雲端服務(ECS)可以扮演該角色。若未修改信任策略,該RAM角色將無法附加到ECS執行個體上。
執行個體ID參數需要設定為
["執行個體ID"]。將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反饋。
在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角色。
配置RAM相關資訊。
編輯源碼的設定檔。
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
按I鍵,按照下方樣本修改。
roleArn = XXXXXXX:role/alivc-demo-role roleSessionName = vod-role roleName = alivc-demo-role
說明REGION_CN_HANGZHOU表示VOD服務所在地區,如cn-shanghai代表華東2(上海)。
roleArn表示RAM角色控制台擷取到的ARN。
roleSessionName表示臨時Token的會話名稱(自訂填寫)。
roleName表示RAM角色控制台擷取到的RAM角色名稱,本樣本中為alivc-demo-role。
按Esc鍵,輸入:wq!儲存並退出。
配置VOD。
編輯源碼的設定檔。
vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
按I鍵,按照如下修改。

參數名
是否必填
說明
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放入/home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource目錄中。如果頭像服務未配置會造成移動端使用者無頭像,不影響其他功能使用。
VOD_REGIONID
是
VOD服務所在地區,本例中為cn-shanghai。
policy
是
在扮演角色的時候額外加上一個許可權限制。更多資訊,請參見基於RAM Policy實現自訂授權。
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:先發後審。
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)。
按Esc鍵,輸入:wq!儲存並退出。
運行服務。
編譯打包。
cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226
mvn clean package -Dmaven.test.skip=true
說明如果沒有安裝maven,需要先執行apt install maven安裝maven。
具體打包時間視伺服器頻寬和效能而定。本例中第一次打包時間大約為30分鐘。
打包完成後,會在/home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/目錄下產生 sdk-api-0.0.1-SNAPSHOT.jar檔案。
部署jar包並啟動服務。
cd /home/user/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程式進程號關閉該進程,再重新打包並部署,否則會因為記憶體不足引起打包失敗。