Tous les produits
Search
Centre de documentation

:Intégration côté serveur

Dernière mise à jour :Aug 10, 2026

Le serveur ApsaraVideo for Short Video gère les échanges de données avec l'application cliente et ApsaraVideo VOD, traite la logique métier et administre les données opérationnelles. Cette rubrique décrit le processus d'intégration côté serveur.

Prérequis

  • Créez un compte Alibaba Cloud et effectuez la vérification d'identité. Pour créer un compte Alibaba Cloud, rendez-vous sur le site web officiel d'Alibaba Cloud. Pour plus d'informations, consultez la rubrique Créer un compte Alibaba Cloud.

  • Avoir activé ECS et effectué les configurations requises. Pour plus d'informations, consultez la rubrique Activer et configurer ECS.

  • Avoir installé JDK 8 sur votre instance ECS.

  • Avoir installé une base de données MySQL 5.7 sur votre instance ECS. Pour plus d'informations, consultez la rubrique Installer et configurer une base de données MySQL. Une fois votre service en production, utilisez ApsaraDB RDS pour bénéficier d'une meilleure stabilité et de meilleures performances. Pour plus d'informations, consultez la page ApsaraDB RDS.

  • Avoir activé ApsaraVideo VOD et configuré les modèles requis dans la console. Pour plus d'informations, consultez la rubrique Activer et configurer ApsaraVideo VOD.

Procédure

Télécharger le code source

  1. Téléchargez le code source du serveur d'applications (AppServer) et de la console de gestion d'ApsaraVideo for Short Video. Pour obtenir le lien de téléchargement, consultez la rubrique ApsaraVideo for Short Video.

  2. Sur le serveur où le fichier source est stocké, exécutez la commande suivante pour transférer le package de code source vers l'instance ECS.

    scp <source_code_file> user@<ECS_instance_IP>:<destination_path>

    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 correspond au fichier de code source, user au nom d'utilisateur de l'instance ECS, 10.0.0.0 à l'adresse IP de l'instance ECS et /home/user/workspace/ au chemin de destination.

    Remarque

    Le fichier de code source, le nom d'utilisateur ECS, l'adresse IP de l'instance ECS et le chemin de destination sont donnés à titre d'exemple. Remplacez les valeurs exemples par vos informations réelles.

  3. Connectez-vous à l'instance ECS et décompressez le package de code source.

    cd /home/user/workspace

    unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip

    Remarque

    Si unzip n'est pas installé, exécutez la commande sudo apt install unzip.

Initialiser et configurer la base de données

Remarque

Vous pouvez constituer une bibliothèque musicale autonome.

  • La structure de données renvoyée par votre service doit correspondre à celle du service Alibaba Cloud pour la récupération des listes de musique ; sinon, la récupération échouera.

  • Si vous utilisez une structure de données personnalisée, adaptez la logique du code dans la couche de démonstration.

  1. Créez une base de données nommée voddemo.

    cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql

    mysqladmin -u root -p create voddemo

  2. Créez une table et un compte administrateur.

    mysql -u root -p voddemo < ./appserver_create_table.sql

    Remarque

    Outre la création de la table, le script appserver_create_table.sql utilise une instruction INSERT pour créer un compte administrateur de console dont le nom d'utilisateur est admin et le mot de passe 123456. Vous pourrez utiliser ce compte pour vous connecter à la console de démonstration en tant qu'administrateur une fois l'intégration de la console effectuée.

  3. Modifiez la règle de sensibilité à la casse de la base de données.

    1. Modifiez le fichier de configuration de la base de données.

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

    2. Appuyez sur la touche I et ajoutez lower_case_table_names=1 à la fin du fichier.

    3. Appuyez sur Esc, puis saisissez :wq! pour enregistrer et quitter.

    4. Redémarrez la base de données pour que la modification prenne effet.

      sudo service mysql restart

  4. Configurez l'adresse de la base de données.

    1. Modifiez le fichier de configuration du code source.

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

    2. Appuyez sur I et modifiez les paramètres suivants.

      spring.datasource.url = jdbc:mysql://<Database_IP_address (e.g., 127.0.0.1)>:3306/<Database_name (e.g., voddemo)>?useSSL=false&useUnicode=true&characterEncoding=UTF-8
      spring.datasource.username = <Database_username, e.g., admin>
      spring.datasource.password = <Database_password>
      Remarque
      • Si la base de données et le serveur s'exécutent sur la même instance ECS, vous pouvez définir l'adresse IP de la base de données sur 127.0.0.1. Sinon, utilisez l'adresse IP de la machine hébergeant la base de données.

      • La base de données créée lors de l'initialisation se nomme voddemo.

    3. Appuyez sur Esc, puis saisissez :wq! pour enregistrer et quitter.

Configurer un rôle RAM

  1. Suivez les étapes décrites dans la rubrique Créer un rôle. Après avoir sélectionné les autorisations à l'étape 6, poursuivez avec les étapes ci-dessous. Vous pouvez définir un nom de rôle personnalisé. Cette rubrique utilise alivc-demo-role à titre d'exemple.

  2. Sur la page Roles, cliquez sur le nom du rôle RAM que vous avez créé, par exemple alivc-demo-role, afin de trouver son ARN. Notez le nom du rôle RAM et l'ARN pour une utilisation ultérieure.

  3. Sur la page Roles, cliquez sur le nom du rôle RAM que vous avez créé, par exemple alivc-demo-role. Cliquez sur l'onglet Trust Policy, puis sur Edit Trust Policy et modifiez la stratégie d'approbation comme suit :

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole", 
                "Effect": "Allow", 
                "Principal": {
                    "Service": [
                        "ecs.aliyuncs.com"
                    ]
                }
            }
        ], 
        "Version": "1"
    }

    Cette stratégie définit le rôle comme un rôle de service, ce qui permet au service cloud de confiance (ECS) de l'endosser. Si la stratégie d'approbation n'est pas modifiée, le rôle RAM ne peut pas être attaché à une instance ECS.

    Le paramètre Instance ID doit être défini sur ["Instance ID"].

  4. Attachez le rôle RAM à l'instance ECS.

    Utilisez l'API AttachInstanceRamRole d'ECS dans OpenAPI Explorer. Pour plus d'informations, consultez la page OpenAPI Explorer.

    Remarque
    • RegionId : identifiant de la région où se trouve votre instance ECS, par exemple China (Shanghai). Vous trouverez cette information dans la console ECS.

    • RamRoleName : nom du rôle RAM. Cet exemple utilise alivc-demo-role.

    • InstanceIds : identifiant de l'instance ECS côté serveur à laquelle vous souhaitez attacher le rôle RAM. Vous trouverez cet identifiant dans la console ECS. L'identifiant doit être au format tableau, par exemple : ["i-bp135jrddxxf9tgo****"].

    Cliquez sur Initiate Call. Un appel réussi affiche un message de succès dans les résultats de débogage situés à droite.

  5. Exécutez la commande suivante dans le terminal ECS pour vérifier que le rôle RAM est associé à l'instance ECS.

    curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role

    La réponse suivante indique que l'autorisation temporaire STS a abouti et que le rôle RAM est associé à l'instance ECS.

    {
    "AccessKeyId" : "STS.XXXXXXXXXXXX",
    "AccessKeySecret" : "XXXXXXXXXXXXXXXX",
    "Expiration" : "2020-11-20T14:33:31Z",
    "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX",
    "LastUpdated" : "2020-11-20T08:33:31Z",
    "Code" : "Success"
    }
    Remarque

    Chaque instance ECS ne peut être associée qu'à un seul rôle RAM. Pour changer le rôle RAM attaché, appelez d'abord l'API DetachInstanceRamRole dans OpenAPI Explorer afin de détacher le rôle actuel de l'instance ECS, puis utilisez l'API AttachInstanceRamRole pour attacher le nouveau rôle RAM.

  6. Configurez les informations relatives à RAM.

    1. Modifiez le fichier de configuration du code source.

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

    2. Appuyez sur I et modifiez le fichier selon l'exemple ci-dessous.

      roleArn = acs:ram::xxx:role/alivc-demo-role
      roleSessionName = vod-session
      roleName = alivc-demo-role
      # The following block contains outdated examples and should be ignored.
      Remarque
      • Le paramètre REGION_CN_HANGZHOU est obsolète. Utilisez plutôt VOD_REGIONID, tel que spécifié dans la section de configuration d'ApsaraVideo VOD.

      • roleArn spécifie l'ARN obtenu depuis la console RAM.

      • roleSessionName spécifie le nom de session pour le jeton temporaire. Vous pouvez personnaliser ce nom.

      • roleName spécifie le nom du rôle RAM obtenu depuis la console RAM. Dans cet exemple, le nom est alivc-demo-role.

    3. Appuyez sur Esc, puis saisissez :wq! pour enregistrer et quitter.

  7. Configurez ApsaraVideo VOD.

    1. Modifiez le fichier de configuration du code source.

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

    2. Appuyez sur I et modifiez les paramètres selon vos besoins.

      # Transcoding template ID
      TEMPLATEGROUP_ID = xxx
      LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID = xxxxxxxx
      TAB_TEMPLATEGROUP_ID = xxxxxxxx
      # Domain name
      DOMAIN_NAME = http://xxx:8080/
      AVATAR_DOMAIN_NAME = http://xxx:8080/resource/
      AVATAR_URL = 1.png,2.png
      VOD_REGIONID = cn-hangzhou
      # Policy for ApsaraVideo VOD services
      policy = {"Version": "1", "Statement": [ {"Action": ["vod:*"], "Resource": ["*"  ],"Effect": "Allow"}]}
      # Taihe Music appkey
      OPEN_API_URL = https://xxxxxxxx.xxxxxxxx.com
      Q_SOURCE = xxxxxxxx
      CALLBACK_PRIVETEKEY = VodTest01
      CALLBACK_NAME = http://xxx:8080/vodcallback/callback
      APP_ID = app-1000000
      AUDIT_SETTINGS_FLAG = on
      auth_key = xxxxx
      live_domain = http://xxxxx.aliyuncs.com
      package_name = IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo

      Paramètre

      Obligatoire

      Description

      TEMPLATEGROUP_ID

      Oui

      Identifiant du groupe de modèles de transcodage. Pour plus d'informations, consultez la page Groupes de modèles de transcodage.

      LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID

      Non

      Groupe de modèles de transcodage utilisé pour les vidéos longues dans un workflow de publication avant revue.

      TAB_TEMPLATEGROUP_ID

      Non

      Identifiant du groupe de modèles de transcodage Narrowband HD. Une fois configuré, vous pouvez recommander des vidéos Narrowband HD dans la console. Si cet identifiant n'est pas défini, les tentatives de recommandation de vidéos Narrowband HD échoueront.

      DOMAIN_NAME

      Oui

      Adresse de l'instance ECS. Exemple : http://10.10.10.101:8080/.

      AVATAR_DOMAIN_NAME

      Non

      Adresse des ressources d'avatar, correspondant à l'adresse des ressources statiques de l'instance ECS. Exemple : http://10.10.10.101:8080/resource/.

      AVATAR_URL

      Non

      Liste séparée par des virgules des noms de fichiers d'images d'avatar, tels que 1.png,2.png.

      Remarque

      Placez les fichiers d'image d'avatar correspondants, 1.png et 2.png, dans le répertoire /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource. Si le service d'avatar n'est pas configuré, les utilisateurs mobiles n'auront pas d'avatars, mais les autres fonctions ne seront pas affectées.

      VOD_REGIONID

      Oui

      Région où se situe le service ApsaraVideo VOD. Exemple : cn-shanghai.

      policy

      Oui

      Stratégie qui restreint davantage les autorisations lorsque le rôle est endossé. Pour plus d'informations, consultez la rubrique Utiliser des stratégies RAM pour une autorisation personnalisée.

      CALLBACK_PRIVETEKEY

      Oui

      Clé privée pour l'authentification des callbacks. Pour plus d'informations, consultez la page Paramètres de callback.

      CALLBACK_NAME

      Oui

      URL de callback. Exemple : http://<Public_IP_of_ECS_instance>:8080/vodcallback/callback. Cet exemple utilise http://10.10.10.101:8080/vodcallback/callback.

      AUDIT_SETTINGS_FLAG

      Oui

      Spécifie le mode de révision du contenu. Valeur par défaut : on. Valeurs valides :

      • on : revue avant publication.

      • off : publication avant revue.

      package_name

      Oui

      Noms de packages valides pour l'intercepteur. Séparez plusieurs noms de packages par des virgules. La valeur par défaut est IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo.

      Remarque
      • com.aliyun.apsara.svideo est le nom du package pour le client Android dans cet exemple.

      • Si l'identifiant Bundle de votre client iOS est déjà enregistré, le client ne pourra pas s'exécuter. Vous devez utiliser un identifiant Bundle personnalisé, tel que com.<Company_name>.<Project_name>, pour la signature du client iOS et l'ajouter au paramètre package_name afin de garantir un accès valide.

      • L'intercepteur n'autorise l'accès au serveur qu'aux applications mobiles disposant de noms de packages valides. Dans le cas contraire, les requêtes provenant du client mobile seront refusées avec une erreur 403 Forbidden.

    3. Appuyez sur Esc, puis saisissez :wq! pour enregistrer et quitter.

  8. Exécutez le service.

    1. Compilez et empaquetez le code.

      cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226

      mvn clean package -Dmaven.test.skip=true

      Remarque
      • Si Maven n'est pas installé, exécutez la commande apt install maven pour l'installer.

      • Le temps d'empaquetage dépend de la bande passante et des performances de l'instance. Dans cet exemple, l'empaquetage initial prend environ 30 minutes.

      Une fois l'empaquetage terminé, le fichier sdk-api-0.0.1-SNAPSHOT.jar est généré dans le répertoire /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/.

    2. Déployez le fichier JAR et démarrez le service.

      cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target

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

      Remarque
      • Lorsque la commande est exécutée, une invite nohup apparaît. Appuyez sur Entrée pour exécuter le programme en arrière-plan.

      • Après l'exécution de la commande, un fichier journal nommé nohup.out est généré dans le répertoire courant. Exécutez la commande cat nohup.out pour afficher le journal. Si le journal contient le message start success, le service a démarré avec succès.

      • Si votre instance ECS dispose de peu de mémoire et que vous devez réempaqueter et déployer le code source du serveur, vous pouvez exécuter la commande jps pour afficher l'identifiant du processus du programme JAR en cours d'exécution, puis exécuter la commande kill -9 <JAR_process_ID> pour terminer le processus avant de procéder à un nouvel empaquetage et déploiement. Sinon, le processus d'empaquetage échouera en raison d'une mémoire insuffisante.