Bonnes pratiques
Tirez le meilleur parti de Transloadit en matière de sécurité, de fiabilité et de performances.
Sécurité
Utiliser des Templates
Les Templates vous permettent de stocker les Assembly Instructions
de notre côté, chiffrées au repos. Vous référencez ensuite un
Template avec template_id dans votre requête API.
Cette approche est plus sûre que l’envoi des instructions complètes à chaque requête, surtout si elles
contiennent des informations d’identification pour des services tiers.
L’utilisation de Templates facilite aussi l’exploitation :
- Vous pouvez modifier le comportement du traitement sans redéployer votre application.
- Vous pouvez combiner les Templates avec des Assembly Notifications et des Assembly Replays.
- Vous pouvez toujours remplacer des valeurs précises à l’exécution si nécessaire.
En savoir plus :
Signer les requêtes côté navigateur
Si des requêtes peuvent être générées côté client, partez du principe que votre Auth Key peut devenir
visible. Utilisez Signature Authentication et des points de terminaison HTTPS
(https://api2.transloadit.com).
Cela protège l’intégrité des requêtes et contribue à empêcher toute utilisation non autorisée.
Utiliser des informations d’identification à privilèges minimaux
Lorsque vous accordez un accès au stockage (par exemple S3), limitez la portée des informations d’identification aux seules actions et aux seuls chemins nécessaires. Par exemple, des informations d’identification permettant uniquement l’écriture pour l’export suffisent souvent pour le Robot 🤖/s3/store (English).
Fiabilité
Privilégier le traitement asynchrone
Si les utilisateurs doivent attendre la fin du traitement pour continuer, le temps passé en file d’attente affecte directement l’expérience utilisateur.
Une meilleure approche :
- Téléversez/importez d’abord les fichiers.
- Laissez le traitement se poursuivre de manière asynchrone.
- Utilisez les Assembly Notifications pour mettre à jour votre backend à la fin de l’Assembly.
Votre interface reste ainsi réactive et les utilisateurs n’ont pas à attendre les conversions.
En savoir plus : Webhooks et Notifications
Ne pas se fier à l’ordre des résultats
L’alignement par position des tableaux de résultats entre les Steps n’est pas garanti. Si vous devez associer les fichiers traités aux originaux, utilisez les identifiants pour établir la correspondance :
uploads[*].idresults[*].original_id
Limiter le nombre de fichiers d’entrée par Assembly
Un très grand nombre de fichiers d’entrée dans une Assembly peut avoir des effets indésirables :
- Vous pouvez dépasser votre nombre d’emplacements prioritaires disponibles pour les Jobs.
- Vous augmentez le risque d’atteindre la durée maximale d’exécution d’une Assembly, fixée à 8 heures.
À titre indicatif, limitez les fichiers d’entrée téléversés et importés à environ 500 à 1000 fichiers par Assembly, selon la quantité de travail nécessaire pour chaque fichier.
Utiliser ignore_errors à bon escient
Le paramètre de Step ignore_errors permet à une Assembly
de se poursuivre lorsque certaines erreurs au niveau des fichiers sont acceptables, ce qui est utile
pour les traitements par lots ou l’extraction facultative de métadonnées. Il rend aussi les échecs moins
visibles, utilisez-le donc de manière réfléchie :
- Préférez des tableaux ciblés comme
["meta"]àtrue, afin d’ignorer uniquement les phases pour lesquelles vous prévoyez de tolérer des erreurs. - Surveillez
ignored_errorsetignored_error_countdans l’Assembly Status afin que les échecs silencieux soient tout de même signalés à votre équipe.
En savoir plus : Le paramètre ignore_errors
Lire la documentation de chaque Robot
Les démos sont un excellent point de départ, mais le comportement en production dépend souvent d’options, de cas limites et de limites documentés pour chaque Robot.
Avant le déploiement, validez votre flux exact à l’aide de la documentation des Robots concernés (English).
Performances et coût
Diffuser via le Smart CDN
Si vous diffusez des ressources traitées auprès des utilisateurs finaux, utilisez le Transloadit Smart CDN.
Principaux avantages :
- Latence réduite grâce à une diffusion en périphérie du réseau.
- Meilleure fiabilité sous charge.
- Moins de traitements répétés et de trafic vers l’origine grâce à la mise en cache.
Bonnes pratiques :
- Configurez le comportement de mise en cache du Robot 🤖/file/serve (English).
- Privilégiez les transformations basées sur les URL lorsque c’est approprié.
- Gardez les clés de cache stables et explicites.
En savoir plus : Diffusion de contenu
Regrouper les fichiers dans moins d’Assemblies
Les Assemblies sont plus lourdes que les opérations sur des fichiers individuels. Le regroupement de fichiers dans moins d’Assemblies peut améliorer le débit et réduire la surcharge de traitement, en particulier lors d’importations volumineuses.
Pour les importations, gardez une taille totale de lot raisonnable pour les nouvelles tentatives et la sûreté d’exploitation.
Maintenir les piles d’encodage à jour
Nous gardons les anciennes piles disponibles pour préserver la rétrocompatibilité, mais vous devriez passer périodiquement à des piles plus récentes afin de bénéficier des correctifs, des améliorations de performances et des mises à jour des codecs et des outils.
Vérifiez les paramètres des piles au moins une fois par an et effectuez des tests avant de basculer le trafic de production.
Définir une limite de facturation
Pendant l’intégration, des boucles accidentelles peuvent se produire et créer des pics d’utilisation inattendus. Une limite de facturation constitue un garde-fou utile.
Fixez-la à un niveau suffisamment élevé pour permettre une croissance normale, mais assez bas pour plafonner les hausses d’utilisation incontrôlées et inattendues.