Cette rubrique fournit des exemples détaillés d'utilisation du SDK de téléchargement côté serveur pour Python afin de transférer divers fichiers multimédias vers ApsaraVideo VOD.
Présentation
Le SDK de téléchargement Python 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 Python :
Vérifiez les prérequis. Pour plus d'informations, consultez la section Prérequis.
Intégrez le SDK de téléchargement Python. Pour plus d'informations, consultez la section Intégrer le SDK de téléchargement Python.
-
Implémentez la logique de téléchargement en configurant les informations de transfert.
Pour les fichiers audio et vidéo, consultez la section Scénario 1 : Télécharger des fichiers audio et vidéo.
Pour les images, consultez la section Scénario 2 : Télécharger des images.
Pour les 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 Python est
cn-shanghai(Shanghai). Pour transférer des fichiers multimédias vers d'autres régions, spécifiez la région à l'aide deApiRegiondansAliyunVodUploader.py. Pour plus d'informations sur les endpoints pris en charge par ApsaraVideo VOD, consultez la section Endpoints.L'exemple suivant définit la région de téléchargement sur
cn-beijing(Pékin) :self.setApiRegion('cn-beijing')
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, notamment 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 de prévenir 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 tâches d'exploitation et de maintenance courantes.
N'intégrez pas directement votre AccessKey ID et votre AccessKey Secret dans le code de votre projet. En cas de fuite, toutes les ressources de votre compte seraient 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 Python
Pour une description détaillée des répertoires du SDK de téléchargement, consultez la section Structure des répertoires.
Cette rubrique utilise un utilisateur standard comme exemple pour décrire les opérations.
-
Exécutez les commandes suivantes pour installer les packages de dépendance.
sudo pip install aliyun-python-sdk-core
sudo pip install aliyun-python-sdk-vod
sudo pip install oss2
RemarqueSi vous utilisez Python 3, remplacez sudo pip install aliyun-python-sdk-core par sudo pip install aliyun-python-sdk-core-v3. Si plusieurs versions de Python sont installées, vous pouvez utiliser la commande
pip3. En cas de problèmes d'intégration, consultez la section FAQ pour les résoudre. -
Téléchargez le SDK de téléchargement Python et l'exemple de code.
Version du SDK : 1.3.2.2
Date de mise à jour : 24/02/2022
Adresse de téléchargement : SDK V1.3.2.2 et code source de démonstration
Décompressez VodUploadSDK-Python_1,3.*.zip et copiez le dossier voduploadsdk depuis le répertoire VodUploadSDK-Python_1,3.* vers votre répertoire de projet local (recommandé) ou le répertoire site-packages.
Mettre à jour le SDK de téléchargement Python
Si vous constatez que de nouvelles API ou de nouvelles fonctionnalités d'API existantes ne sont pas disponibles dans votre SDK actuel, mettez à jour le SDK vers la dernière version.
-
Exécutez les commandes suivantes pour mettre à jour les packages de dépendance.
sudo pip install --upgrade aliyun-python-sdk-vod
sudo pip install --upgrade oss2
-
Téléchargez la dernière version du SDK de téléchargement Python et écrasez les fichiers SDK locaux. Pour plus d'informations, consultez la section Téléchargement du SDK.
RemarqueOuvrez le fichier ChangeLog.txt situé dans le répertoire voduploadsdk pour afficher le numéro de version actuel du SDK et la date de publication.
Structure des répertoires du SDK de téléchargement Python
Le répertoire voduploadsdk
-
AliyunVodUtils.py
Répertoire
Description
AliyunVodLog
La classe de journalisation du SDK de téléchargement. Elle est implémentée sur la base de logging.
AliyunVodUtils
La classe utilitaire du SDK de téléchargement.
AliyunVodException
La classe d'exception du SDK de téléchargement. Elle offre une gestion unifiée des exceptions. Vous pouvez intercepter cette exception en externe.
-
UploadVideoRequest.py
Répertoire
Description
UploadVideoRequest
La classe de requête pour le téléchargement de vidéos. Pour plus d'informations sur les champs, consultez la section CreateUploadVideo.
-
UploadImageRequest.py
Répertoire
Description
UploadImageRequest
La classe de requête pour le téléchargement d'images. Pour plus d'informations sur les champs, consultez la section CreateUploadImage.
-
UploadAttachedMediaRequest.py
Répertoire
Description
UploadAttachedMediaRequest
La 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.py
Répertoire
Description
uploadLocalVideo
L'API pour le téléchargement de vidéos locales.
uploadWebVideo
L'API pour le téléchargement de vidéos web.
uploadLocalM3u8
Télécharge des vidéos M3U8 locales.
uploadWebM3u8
Télécharge des vidéos M3U8 web.
uploadImage
Télécharge des fichiers image locaux ou web.
uploadAttachedMedia
Télécharge des fichiers de ressources multimédias auxiliaires locaux ou web.
parseWebM3u8
Analyse les informations de shard d'un fichier M3U8 web.
parseLocalM3u8
Analyse les informations de shard d'un fichier M3U8 local.
setApiRegion
Définit l'endpoint pour VOD. La valeur par défaut est cn-shanghai (Shanghai). Les régions hors de Chine, telles que ap-southeast-1 (Singapour), sont également prises en charge. Pour plus d'informations, consultez la section ID de région VOD.
setMultipartUpload
Définit le seuil et la taille des parties pour le téléchargement multipartie.
uploadProgressCallback
La fonction de rappel pour la progression du téléchargement. Vous pouvez réécrire cette fonction.
setEnableCrc
Indique s'il faut activer le contrôle de redondance cyclique (CRC) pendant le téléchargement. Cette option est activée par défaut.
ChangeLog.txt : Contient l'historique des versions. La première ligne indique le numéro de version actuel du SDK et la date de publication.
Le répertoire samples
uploadVideo.py : Exemple de code pour le téléchargement de vidéos.
uploadImage.py : Exemple de code pour le téléchargement d'images.
uploadAttachedMedia.py : Exemple de code pour le téléchargement de fichiers de ressources multimédias auxiliaires.
Scénario 1 : Télécharger des fichiers audio et vidéo
Télécharger des fichiers standards
Vous pouvez télécharger les types de fichiers audio et vidéo suivants :
Fichiers locaux : Le téléchargement multipartie est utilisé. La taille maximale d'un seul fichier est de 48,8 To. La reprise de téléchargement n'est pas prise en charge. Pour plus d'informations, consultez la fonction
testUploadLocalVideodans l'exemple de code.Fichiers web : Vous pouvez spécifier une URL de fichier pour le téléchargement. La taille maximale d'un seul fichier est de 48,8 To. Cette méthode nécessite le téléchargement du fichier web sur un disque local avant l'envoi. Assurez-vous que votre disque local dispose d'un espace suffisant. Pour plus d'informations, consultez la fonction
testUploadWebVideodans l'exemple de code.
Télécharger des fichiers M3U8
Accélération du téléchargement
Pour télécharger des fichiers volumineux (de l'ordre du Go ou du 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 Activer l'accélération du téléchargement. Après avoir activé cette fonctionnalité, vous devez ajouter la paire clé-valeur AccelerateConfig key-value à l'objet UserData dans la configuration de téléchargement. Si l'objet UserData n'existe pas, vous devez le créer. Voici un exemple :
uploadVideoRequest.setUserData("{\"AccelerateConfig\":{\"Type\":\"oss\",\"Domain\":\"****Bucket.oss-accelerate.aliyuncs.com\"}}");
Description des paramètres
|
Nom |
Type |
Description |
|
Type |
string |
Le type d'accélération de téléchargement à activer. Seule la valeur |
|
Domain |
string |
Le nom de domaine accéléré de votre bucket. Le protocole par défaut est HTTPS. Remarque
Utilisez un nom de domaine accéléré 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
FAQ
Lorsque vous utilisez l'exemple de code pour télécharger un flux vidéo web, si l'erreur ERROR:root:Download fail: [Errno 2] No such file or directory est signalée, vous pouvez résoudre le problème en créant manuellement un dossier dlfiles dans le même répertoire que le dossier voduploadsdk.
/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/venv/bin/python /Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/uploadVideo.py
[2022-02-16 20:54:59]Download https://img.a... To /Users/fulin/Documents/Code/PythonProject/
/Users/fulin... : InsecureRequestWarning: Unverifi...
warnings.warn(...)
[2022-02-16 20:54:59]Download fail: [Errno 2] No such file or directory: '/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/dlfiles/115...
Type: FileDownloadError, Code: Download File Error, Message: , HTTPStatus: NULL, RequestId: NULL
ERROR:root:Download fail: [Errno 2] No such file or directory: '/Users/fulin/Documents/Code/PythonProject/VodPythonUploadSdkTest/dlfiles/115310cd4d...
Process finished with exit code 0