Enregistrer les fichiers de résultat
Exemple d’Assembly Status JSON
Après le redimensionnement d’image présenté dans Ma première application,
le Step crop_thumbed produit une image 1500x500.
Cet extrait illustratif d’Assembly Status JSON montre les champs
nécessaires pour identifier et enregistrer ce résultat. Les autres champs de statut sont omis ;
les identifiants et les URL d’exemple seront différents dans votre réponse réelle.
{
"assembly_id": "7828446e5acd4aa996dce3455ec914e9",
"ok": "ASSEMBLY_COMPLETED",
"uploads": [
{
"id": "a30bd0776e7f4ac3817b056d102e8219",
"name": "joe-gardner-149699.jpg",
"ssl_url": "https://temporary-files.example/upload.jpg"
}
],
"results": {
"crop_thumbed": [
{
"id": "b8d12f6c517541ca86bf50c537cedb27",
"original_id": "a30bd0776e7f4ac3817b056d102e8219",
"name": "joe-gardner-149699.jpg",
"ssl_url": "https://temporary-files.example/resized.jpg",
"meta": {
"width": 1500,
"height": 500
}
}
]
}
}
Comme vous pouvez le constater, Transloadit fournit les emplacements finaux et les métadonnées pour :
- tous les fichiers téléversés : dans la clé
uploads - tous les fichiers de résultat produits : dans la clé
results
Chaque objet de fichier contient des métadonnées ainsi qu’un champ ssl_url
qui pointe vers le résultat. Si vous avez utilisé l’un de nos
Robots d’exportation (English), ces emplacements correspondront au stockage
que vous avez spécifié, par exemple votre bucket S3. Sinon, l’emplacement est une URL temporaire qui
sera supprimée après 24 heures (English).
Les URL temporaires servent uniquement à télécharger les fichiers une seule fois vers votre propre stockage. Ne partagez jamais ces URL avec les utilisateurs finaux et ne les utilisez jamais en production. Consultez les restrictions du stockage temporaire (English) pour connaître les limitations d’utilisation importantes.
Selon votre intégration, vous pouvez :
- Traiter les résultats localement, là où vous envoyez la requête,
- Faire ajouter les résultats à un formulaire et les envoyer par POST à votre backend, ou
- (Avec le mode asynchrone) Laisser Transloadit envoyer
par POST l’Assembly Status JSON à votre
notify_url. Vous pouvez ensuite utiliser ce JSON pour enregistrer des entrées dans votre base de données.
Consultez la documentation de l’API Webhooks pour la configuration et la vérification des signatures. Vérifiez chaque Notification avant d’utiliser sa charge utile dans votre application.
Afficher les fichiers de résultat à vos utilisateurs finaux
Après avoir enregistré les fichiers dans un stockage persistant et les métadonnées utiles à votre application dans votre base de données, vous pouvez mettre ces fichiers à disposition de vos utilisateurs. Remplacez l’URL d’exemple ci-dessous par celle de votre propre stockage pour afficher l’image recadrée :
<img
alt="Resized uploaded image"
src="https://your-storage.example/resized.jpg"
/>
Si vous traitiez de la vidéo, vous pourriez envisager des lecteurs tels que HLS.js, Plyr ou indigo-player, qui prennent également en charge le HTTP Live Streaming (English) et MPEG-DASH (English).
Ne pas se fier à l’ordre des résultats de traitement de fichiers lors de leur enregistrement
Lorsque l’encodage est terminé et que Transloadit envoie une requête POST à votre URL de résultat ou à votre URL d’Assembly Notification, veuillez ne pas vous fier à l’ordre des résultats.
Imaginez que vous ayez deux Steps utilisant le Robot
🤖/image/resize (English) dans votre
Template, qui utilisent (use)
le Step :original. Par exemple :
{
"steps": {
"high": {
"use": ":original",
"robot": "/image/resize",
"width": 500,
"height": 500
},
"low": {
"use": ":original",
"robot": "/image/resize",
"width": 200,
"height": 200
}
}
}
Lorsque vous téléversez 30 photos avec ce Template, le JSON
de l’Assembly résultante contient deux tableaux de résultats :
"results" -> "high" et "results" -> "low". L’ordre des images dans ces
tableaux n’est toutefois pas le même ! Le premier résultat "high" pourrait
être dérivé de la 15e photo téléversée, tandis que le premier résultat du tableau
"low" pourrait être dérivé de la 10e photo téléversée.
Si vous avez besoin d’associer les résultats d’encodage aux fichiers téléversés correspondants
(ce qui est probablement le cas), veuillez les associer à l’aide de la propriété
id des entrées du tableau "uploads" et de la
propriété original_id des entrées de vos différents tableaux de résultats.
Conserver les fichiers initialement téléversés
Conserver non seulement les fichiers de résultat encodés, mais aussi les fichiers initialement téléversés par vos utilisateurs vous permet de les réencoder ultérieurement dans différents formats à mesure que vos besoins évoluent. Si vous ne les conservez pas, ils sont perdus définitivement, car demander à vos utilisateurs de les téléverser à nouveau n’est probablement pas envisageable.
Conserver les métadonnées
Gardez également à l’esprit que les Assemblies sont éphémères. Transloadit purge les enregistrements après 90 jours ; si vous souhaitez conserver certaines de leurs métadonnées, vous devriez les importer dans votre système de stockage de données.