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
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 :
Remplissez les prérequis. Pour plus d'informations, consultez la section Prérequis.
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.
-
Implémentez la logique de téléchargement, ce qui implique de configurer les informations de téléchargement.
Pour télécharger des fichiers audio et vidéo, consultez la section Scénario 1 : Télécharger des fichiers audio et vidéo.
Pour télécharger des images, consultez la section Scénario 2 : Télécharger des images.
Pour télécharger des ressources multimédias auxiliaires, consultez la section Scénario 3 : Télécharger des ressources multimédias auxiliaires.
-
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 deAliyunVodUploader. 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.
ImportantUne 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
-
Téléchargez le SDK et la démo.
Version du SDK : 1.0.3
Date de mise à jour : 19/04/2022
Adresse de téléchargement : Code source du SDK V1.0.3 et de la démo
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$totalBytesest supérieur à 0 avant la division pour éviter une division par zéro.Pour afficher une progression de téléchargement personnalisée, étendez
AliyunVodUploaderet 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.
logSwitchest 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.
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 :
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 |
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 |
Scénario 2 : Télécharger des images
Scénario 3 : Télécharger des ressources multimédias auxiliaires
Le code suivant fournit un exemple :