Cette rubrique fournit des exemples détaillés expliquant comment utiliser le SDK de téléchargement côté serveur pour Python afin de transférer divers fichiers multimédias vers ApsaraVideo VOD.
Vue d'ensemble
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. Le processus de base d'utilisation du SDK de téléchargement Python est le suivant :
Remplissez 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. Cette étape implique la configuration des informations de téléchargement.
Pour les téléchargements audio et vidéo, consultez la section Scénario 1 : Télécharger des fichiers audio et vidéo.
Pour les téléchargements d'images, consultez la section Scénario 2 : Télécharger des images.
Pour les téléchargements de 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 télécharger des fichiers multimédias dans 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 montre comment définir 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.
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, sont configurés. Pour plus d'informations, consultez les sections Gérer les buckets de stockage et Configurer les rappels.
Un utilisateur RAM est créé et utilisé 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. Vous pouvez ensuite utiliser 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 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 seront compromises.
(Facultatif) Créez un rôle pour l'utilisateur RAM et attribuez-lui les autorisations nécessaires pour accéder à ApsaraVideo VOD si vous souhaitez accéder au service via Security Token Service (STS). 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épendances.
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 résoudre les problèmes. -
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 : 2022-02-24
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épendances.
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.
RemarqueVous pouvez ouvrir le fichier ChangeLog.txt dans le répertoire voduploadsdk pour afficher le numéro de version actuel du SDK et sa date de publication.
Structure des répertoires du SDK de téléchargement Python
Le répertoire voduploadsdk
-
AliyunVodUtils.py
Répertoire
Description
AliyunVodLog
Classe de journalisation du SDK de téléchargement. Elle est implémentée sur la base du module logging.
AliyunVodUtils
Classe utilitaire du SDK de téléchargement.
AliyunVodException
Classe d'exception du SDK de téléchargement. Elle offre une gestion centralisée des exceptions. Vous pouvez intercepter cette exception en externe.
-
UploadVideoRequest.py
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.py
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.py
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.py
Répertoire
Description
uploadLocalVideo
API pour le téléchargement de vidéos locales.
uploadWebVideo
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 fragments d'un fichier M3U8 web.
parseLocalM3u8
Analyse les informations de fragments 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
Fonction de rappel pour la progression du téléchargement. Vous pouvez redéfinir cette fonction.
setEnableCrc
Indique s'il faut activer la vérification de redondance cyclique (CRC) pendant le téléchargement. 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 sa 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 de télécharger le fichier web sur un disque local avant le transfert. 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 AccelerateConfig clé-valeur à 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