Charger des asset
Présentation
Ce tutoriel explique comment charger des asset dans Frame.io. Frame.io peut gérer tous les types de fichiers, pas seulement les vidéos, mais aussi les Script, les images, les cartes et les fichiers de référence. En termes plus techniques, un asset dans Frame.io est une représentation robuste d’un fichier dans S3 et de son contexte dans Frame.io, incluant les transcodages, le contexte utilisateur/équipe/Projet et les métadonnées. Pour plus d’informations sur les asset, veuillez consulter la définition des ressources.
Hiérarchies principales
Il est également utile de savoir comment Frame.io structure ses modèles principaux.
Les Comptes, auxquels appartiennent les Utilisateurs, contiennent de nombreux Projets, qui contiennent tous des asset. Les équipes sont disponibles uniquement pour les comptes Entreprise et fournissent un Niveau supplémentaire de séparation logique. Les asset ne « connaissent » pas l’équipe à laquelle ils appartiennent — seulement le Projet et le Compte — mais les Projets appartiennent strictement aux équipes, et non aux Comptes, faisant des équipes une partie intégrante du processus de chargement d’asset.
Conditions préalables
Pour ce tutoriel, vous aurez besoin de :
- Un Compte Frame.io avec un jeton de développeur (les jetons sont expliqués ci-dessous)
- Frame.io Python SDK
Charger un asset
Cette section vous guide à travers les étapes pour charger un asset.
- Créez un jeton de développeur sur developer.frame.io avec les portées suivantes :
Besoin d'aide pour créer un jeton d'API ?
Consultez les instructions ici.
- Localisez une destination pour votre asset. Au minimum, les assets doivent être placés dans un Projet. Vous devez récupérer l’ID de l’asset racine (
root_asset_id) d’un projet ou un ID d’asset pour un dossier afin de pouvoir spécifier l’emplacement dans la hiérarchie de fichiers où vous souhaitez charger.
REMARQUE :
Vous ne pouvez pas charger avec un ID de projet uniquement. Pour charger à la racine de votre projet, spécifiez le root_asset_id dans votre demande.
En général, vous devez récupérer (dans l’ordre spécifié) :
- les ID de Compte et choisir un compte
- les ID d’équipe et choisir une équipe
- les projets associés à une équipe
- l’ID de projet pour le projet avec lequel vous souhaitez travailler
- l’ID de l’asset racine ou un ID de dossier
Vous pouvez charger directement dans la racine d’un projet en utilisant le root_asset_id.
Lister les assets
Pour choisir où vous voulez charger votre nouvel asset, vous pouvez utiliser l’API pour lister tous les assets dans un projet ou dossier au sein d’un projet. Si un asset est un dossier, il contiendra des assets enfants, qui peuvent également être des fichiers et des dossiers. Lors de la liste des informations d’assets, vous pouvez utiliser n’importe quel ID d’asset, mais si vous voulez examiner tout ce qui est associé à un projet, utilisez le root_asset_id.
Dans la liste retournée d’assets, vous pouvez utiliser un ID pour tout asset qui est un dossier, ou l’ID de l’asset racine. Vous utiliserez cet ID pour marquer où vous voulez charger votre nouvel asset.
Charger la ressource
Dans cet exemple, nous allons charger un nouveau fichier. Vous envoyez votre demande avec les informations suivantes :
curl —request POST \
—url https://api.frame.io/v2/assets/<asset_id>/children \ —header ‘authorization: Bearer<dev_token>’ \
—header ‘content-type: application/json’ \
—data ’{“filesize”:200000,“filetype”:“video/mp4”,“name”:“test”,“source”:{“url”:“URL_FOR_VIDEO”},“type”:“file”}’
</dev_token></asset_id>```
L'URL des asset va expirer
Les URL que vous obtenez de l’appel API de création d’asset sont pré-signées pour autoriser votre chargement, mais expireront après 24 heures.
Créez votre propre chargeur de fichiers
Si vous voulez créer votre propre chargeur, pour de meilleures performances, il est recommandé de charger les segments en parallèle. Chaque segment doit être PUT directement vers les URL Amazon S3 fournies dans la réponse de l’API Frame.io. Vos segments de fichiers doivent correspondre à l’ordre des upload_urls fournies, car elles dictent la séquence de l’asset final concaténé et transcodé. Cela signifie que la 1ère URL prend le 1er segment, la 2e URL prend le 2e segment, et ainsi de suite.
Exemple de pseudocode
Vous pouvez voir un exemple de comment tout cela est géré dans notre SDK Python ici.
Les erreurs AWS sont formatées en XML
Veuillez noter que toute erreur que vous obtenez à ce stade viendra directement d’AWS, et sera donc formatée comme XML, et non comme la gestion d’erreur JSON standard de Frame.io. Nous recommandons généralement de créer une logique de nouvelle tentative autour de ces chargements pour tout usage en production, car les fichiers incomplets (c’est-à-dire les fichiers avec des segments manquants) échoueront au transcodage et à l’affichage dans Frame.io
Et voilà ! Une fois que vous avez terminé les appels PUT vers les upload_urls, vous aurez un nouvel asset dans Frame.io.