Guide de chargement du SDK Python Frame.io
Ce guide explique comment charger des fichiers sur Frame.io à l’aide du SDK Python Frame.io (frameio). Le SDK gère le chargement en plusieurs parties vers S3 via des URL pré-signées, avec des processus parallèles, des tentatives de reconnexion automatiques et un suivi facultatif de la progression. Pour en savoir plus sur les principes généraux de l’API en matière de chargement (URL de chargement, en-têtes, fractionnement), consultez Fonctionnement des chargements locaux et distants.
Conditions préalables
Authentification
Vous disposez d’un client Frameio fonctionnel. Pour plus d’informations sur la configuration, consultez le Guide d’authentification.
Démarrage rapide
Et voilà. Le SDK partage le fichier en blocs en fonction des URL de chargement fournies par l’API, les charge en parallèle et gère automatiquement les tentatives de reprise.
Fonctionnement
Le chargement local se passe en deux étapes :
Créer une ressource de fichier
Appelez client.files.create_local_upload() avec le nom et la taille du fichier. L’API crée un espace réservé de fichier et renvoie des URL PUT S3 pré-signées, à raison d’une par bloc. Le nombre d’URL (et donc de blocs) dépend de la taille du fichier.
Charger vers S3
FrameioUploader lit les URL pour charger le fichier depuis la réponse, divise votre fichier en blocs correspondants, puis envoie chaque bloc à son URL via une requête PUT en parallèle à l’aide d’un pool de threads. Chaque requête comprend les en-têtes requis x-amz-acl: private et Content-Type.
Ce chargement passe directement de votre application vers S3, il ne passe pas par les serveurs de l’API Frame.io. C’est le même principe que celui utilisé par des services tels que YouTube, Vimeo et Dropbox pour charger des fichiers volumineux.
Utilisation de FrameioUploader
FrameioUploader est la méthode recommandée pour charger des fichiers. Cet outil encapsule le module pour charger des blocs de bas niveau et gère tous les détails : extraction des URL de chargement à partir de la réponse de l’API, définition des en-têtes requis, découpage du fichier en blocs et chargement en parallèle.
Suivi de la progression
Utilisez la fonction de rappel on_progress pour suivre la progression du chargement :
La fonction de rappel est appelée une fois après l’achèvement de chaque bloc, avec le nombre cumulé d’octets chargés jusqu’à présent et la taille totale du fichier.
Barre de progression enrichie
Pour une expérience optimale dans le terminal, utilisez Rich :
Configuration
FrameioUploader accepte plusieurs paramètres facultatifs :
Exemple complet
Un exemple complet avec authentification, chargement et suivi de la progression :
Si vous avez besoin d’un contrôle total sur le processus de chargement, par exemple, pour gérer manuellement le fractionnement en blocs, intégrer un pipeline asynchrone ou personnaliser la logique de tentatives, consultez Fonctionnement des chargements locaux et distants concernant le flux API brut et un exemple de script Python autonome.
Chargement à distance
Si votre fichier est déjà accessible via une URL publique, utilisez plutôt le chargement à distance. Il n’est pas nécessaire de diviser le fichier en blocs, Frame.io récupère le fichier directement :
Il est actuellement possible de charger jusqu’à 50 Go via le chargement à distance. Pour les fichiers de plus de 50 Go, veuillez utiliser le chargement local.
Vérification de l’état du chargement
Une fois le fichier chargé, vous pouvez vérifier qu’il a bien été reçu :