Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Upload files using the PHP SDK

Dernière mise à jour :Aug 10, 2026

Cette rubrique présente des exemples détaillés illustrant l'utilisation du kit de développement logiciel (SDK) de téléchargement côté serveur pour PHP afin de transférer divers fichiers multimédias vers le stockage d'ApsaraVideo VOD.

Présentation

Remarque

Une architecture B/S (Browser/Server) est recommandée pour le développement PHP.

Le SDK de téléchargement PHP suit le processus général du SDK côté serveur d'ApsaraVideo VOD. Pour plus d'informations, consultez la section Processus de téléchargement. Voici les étapes de base pour utiliser le SDK de téléchargement PHP :

  1. Remplissez les prérequis. Pour plus d'informations, consultez la section Prérequis.

  2. Intégrez le SDK de téléchargement PHP. Pour plus d'informations, consultez la section Intégrer le SDK de téléchargement PHP.

  3. Implémentez la logique de téléchargement, ce qui implique de configurer les informations de téléchargement.

  4. L'endpoint par défaut du SDK de téléchargement PHP est cn-shanghai (Shanghai). Pour télécharger des fichiers multimédias vers d'autres régions, spécifiez la région lors de l'initialisation de AliyunVodUploader. Pour plus d'informations sur les endpoints pris en charge par ApsaraVideo VOD, consultez la section Endpoints.

    L'exemple suivant montre comment définir la région de téléchargement sur cn-beijing (Pékin) :

    $apiRegionId = 'cn-beijing';  // The destination region for the upload.
    $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret, $apiRegionId);

Prérequis

  • ApsaraVideo VOD est activé. Pour plus d'informations, consultez la section Activer ApsaraVideo VOD.

  • Configurez les paramètres système requis pour le téléchargement, y compris le chemin de stockage dans la région spécifiée et les paramètres de rappel. Pour plus d'informations, consultez les sections Gérer les buckets de stockage et Configurer les rappels.

  • Créez un utilisateur RAM pour accéder à ApsaraVideo VOD. Afin d'éviter les risques de sécurité liés à la divulgation de la paire AccessKey de votre compte Alibaba Cloud, nous vous recommandons de créer un utilisateur RAM et de lui accorder les autorisations nécessaires pour accéder à ApsaraVideo VOD. Utilisez ensuite la paire AccessKey de l'utilisateur RAM pour accéder à ApsaraVideo VOD. Pour plus d'informations, consultez la section Créer un utilisateur RAM et accorder des autorisations.

  • Configurez les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET. Pour plus d'informations, consultez la section Configurer les variables d'environnement sous Linux, macOS et Windows.

    Important
    • Une paire AccessKey de compte Alibaba Cloud dispose d'autorisations sur toutes les opérations API. Utilisez la paire AccessKey d'un utilisateur RAM pour appeler des opérations API ou effectuer des opérations de maintenance quotidiennes.

    • N'intégrez pas en dur votre AccessKey ID et votre AccessKey Secret dans le code de votre projet. En cas de fuite, toutes les ressources de votre compte seront compromises.

  • Facultatif. Si vous souhaitez accéder à ApsaraVideo VOD via Security Token Service (STS), créez un rôle pour l'utilisateur RAM et accordez-lui les autorisations nécessaires. Pour plus d'informations, consultez la section Obtenir un jeton STS.

Intégrer le SDK de téléchargement PHP

  1. Téléchargez le SDK et la démo.

  2. Décompressez VodUploadSDK-PHP_1.0.3.zip et copiez le dossier voduploadsdk depuis le répertoire VodUploadSDK-PHP_1.0.3 vers votre projet.

Structure des répertoires du SDK de téléchargement PHP

Chemin : VodUploadSDK-PHP_1.0.3/voduploadsdk/uploader

  • UploadVideoRequest.php

    Répertoire

    Description

    UploadVideoRequest

    Classe de requête pour le téléchargement de vidéos. Pour plus d'informations sur les champs, consultez la section CreateUploadVideo.

  • UploadImageRequest.php

    Répertoire

    Description

    UploadImageRequest

    Classe de requête pour le téléchargement d'images. Pour plus d'informations sur les champs, consultez la section CreateUploadImage.

  • UploadAttachedMediaRequest.php

    Répertoire

    Description

    UploadAttachedMediaRequest

    Classe de requête pour le téléchargement de ressources multimédias auxiliaires. Pour plus d'informations sur les champs, consultez la section CreateUploadAttachedMedia.

  • AliyunVodUploader.php

    Répertoire

    Description

    __construct

    Définit l'AccessKey pour les téléchargements, le centre ApsaraVideo VOD et l'endpoint. Pour plus d'informations, consultez les sections AccessKey et ID de région ApsaraVideo VOD.

    uploadLocalVideo

    Interface pour le téléchargement de vidéos locales.

    uploadWebVideo

    Interface pour le téléchargement de vidéos web.

    uploadLocalImage

    Télécharge des images locales.

    uploadWebImage

    Télécharge des images web.

    uploadLocalAttachedMedia

    Télécharge des ressources multimédias auxiliaires locales.

    uploadWebAttachedMedia

    Télécharge des ressources multimédias auxiliaires web.

    uploadLocalM3u8

    Télécharge des fichiers M3U8 locaux.

    uploadWebM3u8

    Télécharge des fichiers M3U8 web.

    parseM3u8File

    Analyse un manifeste M3U8 pour obtenir une liste d'adresses de shards.

    setEcsRegionId

    Définit la région où le script de téléchargement est déployé sur une instance ECS, le cas échéant. Si la région est identique à la région de stockage ApsaraVideo VOD, le téléchargement via le réseau interne est automatiquement activé.

    setEnableSSL

    Indique s'il faut activer SSL (utiliser HTTPS pour les requêtes réseau). Cette option est désactivée par défaut pour éviter les problèmes lorsque les extensions associées ne sont pas installées ou sont mal configurées.

    uploadProgressCallback

    Fonction de rappel pour la progression du téléchargement. Vous pouvez redéfinir cette fonction. Pour la signature de méthode et un exemple de substitution, voir ci-dessous.

    Signature de la méthode uploadProgressCallback

    public function uploadProgressCallback($mediaId, $consumedBytes, $totalBytes)
    • $mediaId : ID du média.

    • $consumedBytes : Nombre d'octets téléchargés jusqu'à présent.

    • $totalBytes : Taille totale du fichier en octets.

    Pour calculer le pourcentage de progression du téléchargement, utilisez 100 * ($consumedBytes / $totalBytes) . Vérifiez que $totalBytes est supérieur à 0 avant la division pour éviter une division par zéro.

    Pour afficher une progression de téléchargement personnalisée, étendez AliyunVodUploader et remplacez cette méthode. L'exemple suivant illustre la procédure :

    class MyAliyunVodUploader extends AliyunVodUploader {
        public function uploadProgressCallback($mediaId, $consumedBytes, $totalBytes) {
            if ($totalBytes > 0) {
                $rate = 100 * (floatval($consumedBytes) / floatval($totalBytes));
            } else {
                $rate = 0;
            }
            echo round($rate, 1) . "%\n";
            flush();
        }
    }
  • AliyunVodUtils.php

    Répertoire

    Description

    AliyunVodUtils

    Classe utilitaire fournissant des fonctions statiques, telles que des fonctions pour tronquer des chaînes, obtenir des extensions de fichier et obtenir des noms de fichier.

    AliyunVodLog

    Classe de journal pour l'impression simple. logSwitch est le commutateur de journal.

    AliyunVodDownloader

    Télécharge des fichiers web.

    AliyunVodReportUpload

    Rapporte la progression du téléchargement.

    AliyunVodError

    Définit les codes d'erreur.

Chemin : VodUploadSDK-PHP_1.0.3/voduploadsdk

  • aliyun-php-sdk-core : Dépendance fournissant la classe de base pour le SDK de téléchargement. Elle encapsule la signature des API Alibaba Cloud, les requêtes HTTP et d'autres fonctionnalités principales.

  • aliyun-php-sdk-vod : SDK API côté serveur pour ApsaraVideo VOD. Il encapsule les requêtes pour les API ApsaraVideo VOD.

  • aliyun-php-sdk-oss : Dépendance fournissant la classe OSS pour le SDK de téléchargement. Elle encapsule les opérations de téléchargement OSS et d'autres fonctions connexes.

Chemin : VodUploadSDK-PHP_1.0.3/samples

  • uploadVideo.php : Exemple de code pour le téléchargement de vidéos.

  • uploadImage.php : Exemple de code pour le téléchargement d'images.

  • uploadAttachedMedia.php : Exemple de code pour le téléchargement de ressources multimédias auxiliaires.

Scénario 1 : Télécharger des fichiers audio et vidéo

Fichiers audio et vidéo standard

Vous pouvez télécharger les types de fichiers audio et vidéo suivants :

  • Téléchargez des fichiers locaux à l'aide du téléchargement multipart. Un seul fichier peut atteindre 48,8 To. Le téléchargement avec reprise n'est pas pris en charge. Pour plus d'informations, consultez la fonction testUploadLocalVideo.

  • Téléchargez des fichiers web en spécifiant une URL de fichier. Un seul fichier peut atteindre 48,8 To. Cette méthode nécessite que le fichier web soit téléchargé sur un disque local avant d'être envoyé. Assurez-vous que votre disque local dispose d'un espace suffisant. Pour plus d'informations, consultez la fonction testUploadWebVideo.

Cliquez pour afficher l'exemple de code

<?php
/**
 * Created by Aliyun ApsaraVideo VOD.
 */
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';
date_default_timezone_set('PRC');
// Test uploading a local video.
function testUploadLocalVideo($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($filePath, 'testUploadLocalVideo via PHP-SDK');
        //$uploadVideoRequest->setCateId(1);
        // Example CoverURL: http://example.com/example****.jpg
        //$uploadVideoRequest->setCoverURL("<your CoverURL>");
        //$uploadVideoRequest->setTags('test1,test2');
        //$uploadVideoRequest->setStorageLocation('outin-xx.oss-cn-beijing.aliyuncs.com');
        $uploadVideoRequest->setTemplateGroupId('your-template-group-id');
        $userData = array(
            // Example Callback: https://demo.aliyundoc.com/ProcessMessageCallback
            "MessageCallback"=>array("CallbackURL"=>"<your callback URL>"),
            "Extend"=>array("localId"=>"xxx", "test"=>"www")
        );
        $uploadVideoRequest->setUserData(json_encode($userData));
        $res = $uploader->uploadLocalVideo($uploadVideoRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalVideo Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}
// Test uploading a web video.
function testUploadWebVideo($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($fileURL, 'testUploadWebVideo via PHP-SDK');
        $res = $uploader->uploadWebVideo($uploadVideoRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebVideo Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
$localFilePath = '/opt/video/sample.mp4';
// testUploadLocalVideo($accessKeyId, $accessKeySecret, $localFilePath);

// Example webFileURL: http://example-bucket-****.cn-shanghai.aliyuncs.com/b55b904bc612463b812990b7c8cc****/daa30814c0c340cf8199926f78aa****-a0bc05ba62c3e95cc672e88b8281****-ld.mp4?auth_key=1608774986-0-0-c56acd302bea0c331370d8ed6865****
$webFileURL = '<your webFileURL>';
testUploadWebVideo($accessKeyId, $accessKeySecret, $webFileURL);

uploadLocalVideo vous permet de spécifier un groupe de modèles de transcodage lorsque vous téléchargez une vidéo en appelant setTemplateGroupId() . Si vous spécifiez un ID de groupe de modèles de transcodage, la vidéo est automatiquement transcrite dès la fin du téléchargement, et vous n'avez pas besoin d'appeler séparément l'opération SubmitTranscodeJobs . Pour obtenir l'ID du groupe de modèles de transcodage, accédez à la page Configuration Management > Media Processing Configuration > Transcoding Template Groups dans la console VOD.

Fichiers vidéo M3U8

Le code suivant fournit un exemple :

Cliquez pour afficher l'exemple de code

<?php
/**
 * Created by Aliyun ApsaraVideo VOD.
 */
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';
date_default_timezone_set('PRC');
// Test uploading a local M3U8 video.
function testUploadLocalM3u8($accessKeyId, $accessKeySecret, $m3u8FilePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($m3u8FilePath, 'testUploadLocalM3u8 via PHP-SDK');
        // Call the API to parse the list of shard addresses from the M3U8 file. If the parsing result is inaccurate, concatenate the address list yourself. By default, the shard files and the M3U8 file are in the same directory.
        $sliceFiles = $uploader->parseM3u8File($m3u8FilePath);
        //print_r($sliceFiles);
        $res = $uploader->uploadLocalM3u8($uploadVideoRequest, $sliceFiles);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalM3u8 Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}

// Test uploading a web M3U8 video.
function testUploadWebM3u8($accessKeyId, $accessKeySecret, $m3u8FileUrl)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($m3u8FileUrl, 'testUploadWebM3u8 via PHP-SDK');
        // Call the API to parse the list of shard addresses from the M3U8 file. If the parsing result is inaccurate, concatenate the address list yourself. By default, the shard files and the M3U8 file are in the same directory.
        $sliceFileUrls = $uploader->parseM3u8File($m3u8FileUrl);
        //print_r($sliceFileUrls);
        $res = $uploader->uploadWebM3u8($uploadVideoRequest, $sliceFileUrls);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebM3u8 Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}
####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
$localM3u8FilePath = '/opt/video/m3u8/sample.m3u8';
//testUploadLocalM3u8($accessKeyId, $accessKeySecret, $localM3u8FilePath);

// Example webM3u8FileURL: http://example-bucket-****.cn-shanghai.aliyuncs.com/b55b904bc612463b812990b7c8cc****/daa30814c0c340cf8199926f78aa****-195a25af366b5edae324c47e99a0****-ld.m3u8?auth_key=1608775606-0-0-9fb038deaecd009dadd86721c585****
$webM3u8FileURL = '<your webM3u8FileURL>';
//testUploadWebM3u8($accessKeyId, $accessKeySecret, $webM3u8FileURL);

Accélération du téléchargement

Pour télécharger des fichiers volumineux (en Go ou en To) ou effectuer des téléchargements interrégionaux, tels que le téléchargement d'une vidéo depuis la Chine continentale vers une adresse de stockage dans la région de stockage Singapour , vous pouvez activer la fonctionnalité d'accélération du téléchargement. Pour plus d'informations, consultez la section Méthode d'activation . Après avoir activé cette fonctionnalité, vous devez ajouter la paire clé-valeur AccelerateConfig à l'objet UserData dans la configuration de téléchargement. Si l'objet UserData n'existe pas, créez-le. Le code suivant fournit un exemple :

$userData = array(  
    "AccelerateConfig"=>array("Type"=>"oss","Domain"=>"****Bucket.oss-accelerate.aliyuncs.com"),
);       
$uploadVideoRequest->setUserData(json_encode($userData));

Description des paramètres

Nom

Type

Description

Type

string

Type d'accélération de téléchargement à activer. Seul oss est pris en charge.

Domain

string

Endpoint d'accélération pour le bucket de l'utilisateur. HTTPS est utilisé par défaut.

Remarque

Utilisez un endpoint d'accélération attribué après l'activation, par exemple vod-***.oss-accelerate.aliyuncs.com.

Scénario 2 : Télécharger des images

Cliquez pour afficher l'exemple de code

Cliquez pour afficher l'exemple de code

<?php
/**
 * Created by Aliyun ApsaraVideo VoD.
 * User: https://www.aliyun.com/product/vod
 */

require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';

date_default_timezone_set('PRC');

// Test uploading a local image.
function testUploadLocalImage($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadImageRequest = new UploadImageRequest($filePath, 'testUploadLocalImage via PHP-SDK');
        $uploadImageRequest->setCateId(1000009458);
        $res = $uploader->uploadLocalImage($uploadImageRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalImage Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

// Test uploading a web image.
function testUploadWebImage($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadImageRequest = new UploadImageRequest($fileURL, 'testUploadWebImage via PHP-SDK');
        $uploadImageRequest->setCateId(1000009458);
        $res = $uploader->uploadWebImage($uploadImageRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebImage Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');

$localFilePath = '/opt/image/test-image.jpg';
//testUploadLocalImage($accessKeyId, $accessKeySecret, $localFilePath);

$webFileURL = 'http://vod-download.cn-shanghai.aliyuncs.com/retina/pic/20180208/496AE240-54AE-4CC8-8578-3EEC8F38****.gif';
testUploadWebImage($accessKeyId, $accessKeySecret, $webFileURL);

Scénario 3 : Télécharger des ressources multimédias auxiliaires

Le code suivant fournit un exemple :

Cliquez pour afficher l'exemple de code

Cliquez pour afficher l'exemple de code

<?php
/**
 * Created by Aliyun ApsaraVideo VoD.
 * User: https://www.aliyun.com/product/vod
 */

require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';

date_default_timezone_set('PRC');

// Test uploading a local auxiliary media asset.
function testUploadLocalAttachedMedia($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadAttachedRequest = new UploadAttachedMediaRequest($filePath, 'watermark',
            'testUploadLocalAttachedMedia via PHP-SDK');
        //$uploadAttachedRequest->setCateId(100000****);
        $res = $uploader->uploadLocalAttachedMedia($uploadAttachedRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalAttachedMedia Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

// Test uploading a web auxiliary media asset.
function testUploadWebAttachedMedia($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadAttachedRequest = new UploadAttachedMediaRequest($fileURL, 'watermark',
            'testUploadWebAttachedMedia via PHP-SDK');
        //$uploadAttachedRequest->setCateId(100000****);
        $res = $uploader->uploadWebAttachedMedia($uploadAttachedRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebAttachedMedia Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');

$localFilePath = '/opt/image/test.png';
//testUploadLocalAttachedMedia($accessKeyId, $accessKeySecret, $localFilePath);

$webFileURL = 'http://vod-download.cn-shanghai.aliyuncs.com/retina/pic/20180208/496AE240-54AE-4CC8-8578-3EEC8F38****.gif';
testUploadWebAttachedMedia($accessKeyId, $accessKeySecret, $webFileURL);

Références

Présentation du téléchargement de médias

Présentation des SDK STS