Qu’est-ce qu’une Assembly ?
Une Assembly Transloadit est une exécution des Assembly Instructions sur des fichiers téléversés, importés ou générés par le flux de travail lui-même. Chaque exécution possède un assembly_id unique qui l’identifie dans les requêtes API ultérieures.
Fonctionnement des Assemblies
Une Assembly est le processus de traitement créé à l’exécution lorsqu’une requête associe des Assembly Instructions à des sources d’entrée : fichiers téléversés, fichiers récupérés par des Steps d’importation ou fichiers qu’un Robot crée lui-même, comme une capture d’écran de site web ou une image générée à partir d’une consigne textuelle. Les Instructions sont fournies directement sous la forme steps ou par référence à un Template enregistré via template_id ; le Template stocke la configuration, tandis que l’Assembly en est une exécution particulière. Les Steps démarrent dès que les Steps dont ils dépendent produisent des fichiers, ce qui permet à un même fichier source d’alimenter plusieurs branches exécutées en parallèle. Transloadit rend compte de l’exécution dans un document Assembly Status unique, renvoyé lors de la création de l’Assembly, accessible à son URL de statut et envoyé à notify_url si cette valeur est définie. Ce document évolue pendant le téléversement ou l’exécution de l’Assembly ; une fois l’exécution dans un état terminal, il contient soit ok avec l’état final, soit error avec un code d’erreur.
Points clés
- 1Une réponse HTTP de réussite à la requête de création signifie que l’Assembly a été acceptée, pas que le traitement a réussi. L’Assembly est toujours en cours tant que
okvautASSEMBLY_UPLOADING,ASSEMBLY_EXECUTINGouASSEMBLY_REPLAYING; seule la valeurASSEMBLY_COMPLETEDindique une réussite. Les valeursASSEMBLY_CANCELEDetREQUEST_ABORTEDapparaissent également sousoksans indiquer une réussite, et une requête de statut peut renvoyer HTTP 200 alors que le corps contienterror. Faites donc dépendre la suite du traitement du corps de la réponse, et non du statut HTTP. - 2La valeur
assembly_idfait office de droit d’accès : toute personne qui la connaît peut demander l’Assembly Status, y compris les champs soumis et les résultats, sans authentification supplémentaire. Veillez à ce que l’identifiant et les URL de statut ne figurent ni sur des pages publiques ni dans des éléments partagés avec des tiers non fiables. L’optionquietne fait que raccourcir la réponse de création ; elle ne restreint pas les personnes qui peuvent ensuite consulter le statut. - 3La création d’une Assembly n’est pas idempotente. Réessayer la requête de création, par exemple après un dépassement du délai d’attente, peut démarrer une seconde Assembly avec sa propre valeur
assembly_id, et l’ajout d’un nonce de signature ne l’empêche pas. Dédupliquez les nouvelles tentatives dans votre application. - 4Les fichiers de résultat sont regroupés sous le nom du Step qui les a produits, et non dans l’ordre des téléversements. Un téléversement peut produire plusieurs résultats ; associez-les aux téléversements à l’aide de
original_id. Les Steps qui se limitent au stockage des fichiers n’ajoutent aucune entrée, et les résultats peuvent être partiels après une erreur. Les URL des résultats sur le stockage temporaire de Transloadit expirent ; ajoutez donc un Step d’exportation lorsque les fichiers doivent être conservés.
Quand les Assemblies comptent
Stockez la valeur assembly_id sur votre serveur lorsqu’un processus de traitement doit interroger périodiquement le statut, recueillir les résultats ou associer une notification entrante à la requête qui a déclenché ce processus de traitement. Traitez cette valeur comme un secret, car l’identifiant seul suffit pour consulter l’Assembly Status. Décidez avant le lancement comment votre application prendra connaissance du résultat, en interrogeant périodiquement l’URL de statut ou en définissant notify_url, car la réponse à la requête de création confirme uniquement que l’Assembly a été acceptée.
Références
- API Transloadit : créer une nouvelle Assembly
- API Transloadit : point de terminaison de l’Assembly Status (interrogation périodique et avertissement concernant l’identifiant d’Assembly)
- API Transloadit : champs de la réponse Assembly Status
- API Transloadit : codes de réponse (états en cours et terminaux)
- API Transloadit : webhooks (Assembly Notifications)
- Documentation Transloadit : Assembly Instructions (entrées et ordre d’exécution)