Transloadit
Tarifs
  • Téléversements de fichiers
  • Importation de fichiers
  • Traitement par lots (English)
  • Encodage vidéo
  • Encodage audio
  • Traitement d’images
  • Traitement de documents
  • Intelligence artificielle
  • Filtrage et sécurité des fichiers
  • Catalogage de médias
  • Compression de fichiers
  • Évaluation de code
  • Exportation de fichiers
  • Smart CDN
  • Voir tous les services
  • Explorer les intégrations (English)
  • Explorer les démos interactives (English)
  • Uppy
  • TransloaditKit
  • SDK Android
  • SDK Node.js
  • SDK Python
  • SDK Ruby
  • SDK Go
  • SDK Java
  • SDK PHP
  • Zapier
  • Serveur MCP
  • Transloadit CLI (English)
  • Terraform
  • Essentiels
  • Bonnes pratiques
  • FAQ
  • Robots (English)
  • API
  • Formats (English)
  • Créer votre première application
  • À propos de Transloadit
  • Comparatifs
  • Projets open source
  • Témoignages
  • Carrières (English)
  • Sécurité
  • Articles (English)
  • Actus dev (English)
  • Astuces dev
  • Presse (English)
  • Recherche (English)
  • Études de cas (English)
  • Solutions
  • Guides
  • Glossaire (English)
  • Juridique (English)
  • Outils
  • Aider Coursera à apporter l’éducation à des millions de personnes à travers le monde (English)
  • Support Transloadit
  • Support open source
  • Accord de niveau de service (English)
EssentielsRobotsEN (English)FAQAPIFormatsEN (English)Bonnes pratiques
Téléversements de fichiers
  • /upload/handle
    Gérer les téléversements
Importation de fichiers
  • /azure/import
    Importer des fichiers depuis Azure
  • /backblaze/import
    Importer des fichiers depuis Backblaze
  • /box/import
    Importer des fichiers depuis Box
  • /mega/import
    Importer des fichiers depuis MEGA S4 Object Storage
  • /cloudfiles/import
    Importer des fichiers depuis Rackspace Cloud Files
  • /cloudflare/import
    Importer des fichiers depuis Cloudflare R2
  • /digitalocean/import
    Importer des fichiers depuis DigitalOcean Spaces
  • /dropbox/import
    Importer des fichiers depuis Dropbox
  • /ftp/import
    Importer des fichiers depuis des serveurs FTP
    EN (English)
  • /google/import
    Importer des fichiers depuis Google Cloud Storage
  • /http/import
    Importer des fichiers depuis des serveurs web
  • /minio/import
    Importer des fichiers depuis MinIO
  • /s3/import
    Importer des fichiers depuis Amazon S3
    EN (English)
  • /sftp/import
    Importer des fichiers depuis des serveurs SFTP
    EN (English)
  • /supabase/import
    Importer des fichiers depuis Supabase Storage
  • /swift/import
    Importer des fichiers depuis OpenStack Swift
  • /tigris/import
    Importer des fichiers depuis Tigris
  • /transloadit/import
    Importer des fichiers depuis Transloadit Storage
    EN (English)
  • /vimeo/import
    Importer des vidéos depuis Vimeo
  • /wasabi/import
    Importer des fichiers depuis Wasabi
Encodage vidéo
  • /video/adaptive
    Convertir des vidéos en HLS, MPEG-Dash et CMAF
  • /video/artwork
    Extraire ou insérer l’illustration de pochette des vidéos
  • /video/concat
    Concaténer des vidéos
    EN (English)
  • /video/encode
    Transcoder, redimensionner ou filigraner des vidéos
  • /video/merge
    Fusionner vidéo, audio et images en une seule vidéo
  • /video/ondemand
    Diffuser des vidéos en streaming avec encodage à la demande
  • /video/split
    Découper une vidéo
  • /video/subtitle
    Ajouter des sous-titres aux vidéos
  • /video/thumbs
    Extraire des miniatures de vidéos
    EN (English)
  • Préréglages vidéoEN (English)
Encodage audio
  • /audio/artwork
    Extraire ou insérer une pochette audio
  • /audio/concat
    Concaténer de l’audio
    EN (English)
  • /audio/split
    Découper de l’audio
  • /audio/encode
    Encoder de l’audio
  • /audio/loop
    Mettre de l’audio en boucle
  • /audio/merge
    Fusionner des fichiers audio en un seul
  • /audio/waveform
    Générer des images de forme d’onde à partir d’audio
  • Préréglages audioEN (English)
Traitement d’images
  • /image/bgremove
    Supprimer l’arrière-plan des images
  • /image/enhance
    Améliorer des images
    EN (English)
  • /image/merge
    Fusionner plusieurs images en une seule
  • /image/optimize
    Optimiser des images sans perte de qualité
  • /image/resize
    Convertir, redimensionner ou ajouter un filigrane à des images
Traitement de documents
  • /document/autorotate
    Faire pivoter automatiquement des documents
  • /document/convert
    Convertir des documents dans différents formats
    EN (English)
  • /document/extract
    Extraire du texte et des images intégrées
  • /document/merge
    Fusionner des documents en un seul
  • /document/optimize
    Optimiser la taille des fichiers PDF
    EN (English)
  • /file/read
    Lire le contenu de fichiers
  • /document/split
    Extraire des pages
  • /document/thumbs
    Extraire des miniatures de documents
  • /html/convert
    Prendre des captures d’écran de pages web ou de fichiers HTML
Intelligence artificielle
  • /document/ocr
    Reconnaître le texte dans des documents (OCR)
  • /image/describe
    Reconnaître des objets dans des images
  • /image/facedetect
    Détecter des visages dans des images
  • /image/generate
    Générer des images à partir de consignes textuelles
  • /image/upscale
    Augmenter la résolution des images
    EN (English)
  • /image/ocr
    Reconnaître le texte dans des images (OCR)
  • /speech/transcribe
    Transcrire la parole dans des fichiers audio ou vidéo
  • /text/speak
    Synthétiser la parole à partir de documents
  • /text/translate
    Traduire le texte de documents
  • /ai/chat
    Générer des réponses de chat par IA
    EN (English)
  • /video/generate
    Générer des vidéos à partir de consignes textuelles
Filtrage et sécurité des fichiers
  • /file/filter
    Filtrer des fichiers
  • /file/verify
    Vérifier le type de fichier
  • /file/virusscan
    Analyser des fichiers à la recherche de virus
Catalogage de médias
  • /file/hash
    Calculer le hachage de fichiers
  • /file/preview
    Générer une miniature d’aperçu
    EN (English)
  • /meta/write
    Écrire des métadonnées dans des médias
Compression de fichiers
  • /file/compress
    Compresser des fichiers
  • /file/decompress
    Décompresser des archives
Évaluation de code
  • /http/request
    Appeler des points de terminaison HTTP
    EN (English)
  • /script/run
    Exécuter des scripts dans des Assemblies
Exportation de fichiers
  • TéléchargementEN (English)
  • /azure/store
    Exporter des fichiers vers Microsoft Azure
  • /backblaze/store
    Exporter des fichiers vers Backblaze
  • /box/store
    Exporter des fichiers vers Box
  • /mega/store
    Exporter des fichiers vers MEGA S4 Object Storage
  • /cloudfiles/store
    Exporter des fichiers vers Rackspace Cloud Files
  • /cloudflare/store
    Exporter des fichiers vers Cloudflare R2
  • /digitalocean/store
    Exporter des fichiers vers DigitalOcean Spaces
  • /dropbox/store
    Exporter des fichiers vers Dropbox
  • /ftp/store
    Exporter des fichiers vers des serveurs FTP
    EN (English)
  • /google/store
    Exporter des fichiers vers Google Cloud Storage
  • /minio/store
    Exporter des fichiers vers MinIO
  • /s3/store
    Exporter des fichiers vers Amazon S3
    EN (English)
  • /sftp/store
    Exporter des fichiers vers des serveurs SFTP
    EN (English)
  • /supabase/store
    Exporter des fichiers vers Supabase Storage
  • /swift/store
    Exporter des fichiers vers OpenStack Swift
  • /tigris/store
    Exporter des fichiers vers Tigris
  • /transloadit/store
    Stocker des fichiers dans Transloadit Storage
    EN (English)
  • /tus/store
    Exporter des fichiers vers des serveurs compatibles tus
  • /vimeo/store
    Exporter des fichiers vers Vimeo
  • /wasabi/store
    Exporter des fichiers vers Wasabi
  • /youtube/store
    Exporter des fichiers vers YouTube
Smart CDN
  • /file/serve
    Servir des fichiers aux navigateurs web
  • /tlcdn/deliver
    Mettre en cache et distribuer des fichiers à l’échelle mondiale
  • TarifsEN (English)

Servir des fichiers aux navigateurs web

🤖/file/serve sert des fichiers aux navigateurs web.

Robot /file/serve

Lorsque vous souhaitez que Transloadit transforme des fichiers à la volée, vous pouvez utiliser ce Robot pour déterminer quel Step d’un Template doit être diffusé à l’utilisateur final (via un CDN), ainsi que pour définir des informations supplémentaires sur les fichiers diffusés, telles que des en-têtes. Vous pouvez ainsi, par exemple, suggérer au CDN combien de temps conserver en cache des copies du résultat. Par défaut, nous demandons aux navigateurs de mettre le résultat en cache pendant 72 h (259200 secondes) et aux CDN de mettre le contenu en cache pendant 24 h (86400 secondes). Utilisez le paramètre cache_duration pour personnaliser les deux valeurs à la fois.

🤖/file/serve sert uniquement de couche de liaison entre notre moteur d’Assembly et la diffusion de fichiers via HTTP. Il vous permet de sélectionner le résultat approprié d’une série de Steps via le paramètre use et de configurer les en-têtes du contenu d’origine. Son rôle s’arrête là. 🤖/tlcdn/deliver prend ensuite le relais pour diffuser ce contenu d’origine à travers le monde et veiller à ce qu’il soit mis en cache à proximité de vos utilisateurs finaux lorsqu’ils effectuent des requêtes telles que https://my-app.tlcdn.com/resize-img/canoe.jpg?w=500⁠, entre autres. 🤖/tlcdn/deliver ne fait pas partie de vos Assembly Instructions, mais il peut apparaître sur vos factures, car la diffusion des copies en cache entraîne des frais de bande passante. 🤖/file/serve n’entraîne des frais que lorsque le CDN ne dispose pas de copie en cache et demande de régénérer le contenu d’origine, ce qui, selon vos paramètres de cache, pourrait ne se produire qu’une fois par mois ou par an, pour chaque fichier/transformation.

Bien que cela soit théoriquement possible, nous vous déconseillons vivement d’utiliser 🤖/file/serve directement dans des fichiers HTML, car si votre site devient populaire et que l’URL du média gérée par /file/serve reçoit un million de requêtes, cela représente un million de nouveaux redimensionnements d’image. En plaçant un CDN en amont (et grâce à la mise en cache qu’il apporte), vous maintenez les frais d’encodage et les latences à un niveau faible.

Pensez également à configurer les en-têtes de mise en cache et les directives de contrôle du cache pour contrôler la mise en cache et l’invalidation du contenu sur les serveurs périphériques du CDN, en trouvant un équilibre entre fraîcheur et efficacité.

Sécurité du Smart CDN avec des URL signées

Vous pouvez utiliser des URL signées du Smart CDN pour éviter les abus de notre plateforme d’encodage. Voici un bref exemple en Node.js utilisant notre SDK Node, mais des exemples pour d’autres langages et SDK sont également disponibles.

// yarn add @transloadit/node
// or
// npm install --save @transloadit/node

import { Transloadit } from '@transloadit/node'

const transloadit = new Transloadit({
  authKey: 'YOUR_TRANSLOADIT_KEY',
  authSecret: 'YOUR_TRANSLOADIT_SECRET',
})

const url = transloadit.getSignedSmartCDNUrl({
  workspace: 'YOUR_WORKSPACE',
  template: 'YOUR_TEMPLATE',
  input: 'image.png',
  urlParams: { height: 100, width: 100 },
})

console.log(url)

Cet exemple génère une URL signée du Smart CDN qui inclut des paramètres d’authentification, empêchant tout accès non autorisé à vos points de terminaison de transformation.

Pour les nouvelles intégrations, utilisez le format moderne sig + exp. Les anciennes signatures s sont dépréciées. Notez également que la période avant expiration constitue en pratique la durée de mise en cache des résultats signés : des délais d’expiration plus courts renforcent le contrôle d’accès, tandis que des délais d’expiration plus longs améliorent la réutilisation du cache et réduisent le volume d’encodage.

Plus d’informations

  • Diffusion de contenu
  • Tarifs de 🤖/file/serve
  • Tarifs de 🤖/tlcdn/deliver
  • Article de blog Fonctionnalité d’aperçu des fichiers EN (English)

Exemple d’utilisation

Servir des fichiers transformés avec une durée de mise en cache définie explicitement pour le navigateur et le CDN :

{
  "steps": {
    "resized": {
      "height": 450,
      "resize_strategy": "fit",
      "robot": "/image/resize",
      "use": ":original",
      "width": 800
    },
    "served": {
      "cache_duration": 86400,
      "robot": "/file/serve",
      "use": "resized"
    }
  }
}

Paramètres

  • interpolate

    boolean | Record<string, boolean>

    Détermine si les Assembly Variables sont interpolées pour chaque champ d’instruction.

    Par défaut, la plupart des champs d’instruction des Robots interpolent les Assembly Variables. Définissez ce paramètre sur false pour traiter tous les champs d’instruction comme du texte littéral, ou définissez le chemin d’un champ individuel sur false pour traiter uniquement ce champ comme du texte littéral. Pour les champs propres à un Robot qui sont littéraux par défaut, définissez ce paramètre sur true ou définissez le chemin de ce champ sur true pour réactiver l’interpolation.

    Utilisez des noms de champs tels que path, ou des chemins avec points tels que ffmpeg.vf pour les objets imbriqués.

  • output_meta

    Record<string, boolean> | boolean | Array<string>

    Permet de spécifier un ensemble de métadonnées dont le calcul est plus coûteux en puissance CPU et qui sont donc désactivées par défaut afin que le traitement de vos Assemblies reste rapide.

    Pour les images, vous pouvez ajouter "has_transparency": true dans cet objet pour déterminer si l’image contient des parties transparentes, et "dominant_colors": true pour extraire de l’image un tableau de codes couleur hexadécimaux.

    Pour les images, vous pouvez également ajouter "blurhash": true pour extraire une chaîne BlurHash⁠ — une représentation compacte d’un espace réservé pour l’image, utile pour afficher un aperçu flou pendant le chargement de l’image complète.

    Pour les images, "thumbhash": true extrait plutôt un ThumbHash⁠ encodé en base64 dans meta.thumbhash, accompagné de meta.has_alpha (qui indique si un canal alpha existe, même lorsque l’image est entièrement opaque). Il décrit les pixels orientés selon les données EXIF et utilise la première image des images animées. L’extraction est effectuée au mieux : les images de plus de 40 mégapixels, les formats non pris en charge ou un décodage échoué ou limité ne produisent aucun espace réservé. Une extraction réussie ajoute des frais de métadonnées équivalents à 20 % des octets de ce fichier. Aucun supplément ThumbHash ne s’applique lorsque l’option est désactivée ou lorsqu’aucun hash n’est produit.

    Définissez cette option sur le Step qui produit l’image, par exemple /upload/handle pour les originaux téléversés ou /image/resize pour les sorties traitées. La définir uniquement sur /transloadit/store ne déclenche pas l’extraction : le stockage conserve les métadonnées du Step producteur. Transloadit Storage conserve un hash généré avec sa version immuable et le renvoie dans les résultats stockés et lors des lectures natives de ressources. Les téléversements directs vers S3 ne génèrent pas d’espaces réservés. Un espace réservé contient des informations sur l’image : protégez-le donc avec les mêmes contrôles d’accès que l’image complète.

    Pour les vidéos, vous pouvez ajouter le paramètre "colorspace": true pour extraire l’espace colorimétrique de la vidéo de sortie.

    Pour les vidéos, vous pouvez également ajouter "interlaced": true pour détecter si la vidéo est entrelacée. Cette option combine l’indicateur ffprobe peu coûteux field_order avec une passe d’échantillonnage idet limitée sur les premières images de la source, et expose interlaced, field_order ainsi qu’un objet de diagnostic interlace_detection sous file.meta. Cette opération est coûteuse en calcul et facturée en conséquence.

    Pour l’audio, vous pouvez ajouter "mean_volume": true pour obtenir une valeur unique représentant le volume moyen du fichier audio.

    Vous pouvez également définir cette option sur false pour ignorer l’extraction des métadonnées et accélérer le transcodage.

  • user_meta

    Record<string, any>(par défaut : {})

    Ajoute des métadonnées JSON personnalisées à chaque fichier émis sans modifier son contenu. Les objets et tableaux imbriqués sont pris en charge.

    L’héritage dépend du Robot. Les valeurs sont fusionnées avec la valeur user_meta existante du fichier de sortie ; le Step actuel remplace les clés de premier niveau correspondantes. Attribuez explicitement les clés requises lorsqu’un Robot crée de nouvelles sorties.

    Dans les Steps de traitement, ${file.*} désigne la première entrée et ${result.*} le fichier émis. Les valeurs sont évaluées pour chaque sortie après l’exécution du Robot, avant l’extraction ultérieure des métadonnées et le stockage temporaire. Sur :original, les valeurs sont évaluées pour chaque téléversement avant l’extraction des métadonnées.

    Les Steps en aval lisent ${file.user_meta.key}. Consultez Métadonnées personnalisées pour un exemple complet et les règles d’héritage.

  • result

    boolean(par défaut : false)

    Indique si les résultats de ce Step doivent figurer dans l’Assembly Status JSON

  • queue

    batch

    Définir la file d’attente sur « batch » abaisse manuellement la priorité des Jobs de ce Step afin d’éviter de consommer des emplacements prioritaires de Jobs pour des Jobs qui n’ont pas besoin d’un temps d’attente nul dans la file

  • force_accept

    boolean(par défaut : false)

    Forcer un Robot à accepter un type de fichier qu’il aurait ignoré.

    Par défaut, les Robots ignorent les fichiers qu’ils ne connaissent pas. Le Robot 🤖/video/encode, par exemple, ignorera volontiers les images en entrée.

    Avec le paramètre force_accept défini sur true, vous pouvez forcer les Robots à accepter tous les fichiers qui leur sont envoyés. Cela entraîne généralement des erreurs et ne doit être utilisé que pour le débogage ou pour traiter des cas limites.

  • ignore_errors

    boolean | Array<meta | execute>(par défaut : [])

    Ignore les erreurs pendant certaines phases du traitement.

    Si vous définissez cette valeur sur ["meta"], le Robot ignorera les erreurs lors de l’extraction des métadonnées.

    Si vous définissez cette valeur sur ["execute"], le Robot ignorera les erreurs lors de la phase d’exécution principale.

    Définir cette valeur sur true équivaut à ["meta", "execute"] : les erreurs seront alors ignorées dans les deux phases.

  • use

    string | Array<string> | Array<object> | object

    Indique quel(s) Step(s) utiliser comme entrée.

    • Vous pouvez choisir n’importe quel nom pour les Steps, sauf ":original" (réservé aux téléversements des utilisateurs gérés par Transloadit)
    • Vous pouvez fournir plusieurs Steps en entrée à l’aide de tableaux :
      {
        "use": [
          ":original",
          "encoded",
          "resized"
        ]
      }
      
    • Vous pouvez également étiqueter les Steps d’entrée avec as pour transmettre une intention sémantique aux Robots :
      {
        "use": [
          {
            "name": ":original",
            "as": "image"
          },
          {
            "name": ":original",
            "as": "mask"
          }
        ]
      }
      
    Astuce

    C’est probablement tout ce que vous devez savoir sur use, mais vous pouvez consulter les cas d’utilisation avancés.

  • cache_duration

    string | number

    Durée facultative, en secondes, pendant laquelle le fichier diffusé doit être mis en cache. Lorsqu’elle est définie, cette valeur est utilisée pour les directives max-age (cache du navigateur) et s-maxage (cache partagé/CDN) dans l’en-tête Cache-Control, en remplaçant les valeurs par défaut. Par exemple, définir cache_duration sur 43200 mettrait le fichier en cache pendant 12 heures.

    Cela permet de contrôler la durée de conservation des données dans les CDN. Par exemple, si vos fichiers temporaires sont supprimés après 24 heures, vous pouvez définir cache_duration sur 86400 pour garantir que les copies en cache expirent également dans ce délai.

  • download_name

    string

    Diffuse le fichier en tant que pièce jointe avec ce nom de fichier Unicode. Une valeur vide ou omise conserve la diffusion pour affichage intégré. Remplace un en-tête Content-Disposition sans modifier les octets ni la prise en charge de Range.

  • headers

    Record<string, string>(par défaut : {"Access-Control-Allow-Headers":"X-Requested-With, Content-Type, Cache-Control, Accept, Content-Length, Transloadit-Client, Authorization, Range, If-Range","Access-Control-Allow-Methods":"POST, GET, PUT, DELETE, OPTIONS","Access-Control-Allow-Origin":"*","Access-Control-Expose-Headers":"Transloadit-Assembly-URL, Content-Range, Content-Length, Accept-Ranges","Cache-Control":"public, max-age=259200, s-maxage=86400","Content-Type":"${file.mime}; charset=utf-8","Transloadit-Assembly":"…","Transloadit-RequestID":"…","Accept-Ranges":"bytes"})

    Un objet contenant une liste d’en-têtes à définir pour un fichier lorsque nous le diffusons vers un CDN/navigateur web, comme { FileURL: "${file.url_name}" }. Ces en-têtes sont fusionnés avec les valeurs par défaut en les remplaçant en cas de conflit, et peuvent inclure n’importe quelle Assembly Variable disponible.

    L’en-tête Accept-Ranges: bytes indique que les requêtes de plage HTTP sont prises en charge pour permettre de se déplacer dans la chronologie pendant la lecture des médias. Cela repose sur le fait que tous les backends de stockage de Transloadit (S3, GCS, etc.) respectent les en-têtes de requête Range. Les en-têtes CORS incluent Range et If-Range dans Access-Control-Allow-Headers pour autoriser les requêtes de plage entre origines différentes, et exposent Content-Range, Content-Length et Accept-Ranges via Access-Control-Expose-Headers afin que le JavaScript du navigateur puisse lire ces valeurs.

Articles de blog associés

  • Building an alt-text to speech generator with Transloadit EN (English) 9 mai 2022
  • Easy instant website screenshots via Transloadit CDN EN (English) 11 mai 2022
  • Smart CDN enhanced with AI-powered face detection EN (English) 21 juin 2022
  • How to get started with the Transloadit Smart CDN EN (English) 16 février 2024
  • Save costs with on-demand video encoding EN (English) 5 mai 2025
Page précédente ← /youtube/storePage suivante /tlcdn/deliver →
Contacter le support⁠

TransloaditVérification de l’état…

Produit

  • Services
  • Tarifs
  • Démos EN (English)
  • Outils
  • Sécurité
  • Support

Entreprise

  • À propos de Transloadit/Presse EN (English)
  • Blog EN (English)/Carrières EN (English)
  • Comparatifs/Matrice de conformité EN (English)
  • Recherche EN (English)
  • Projets open source
  • Solutions
  • Pionniers du web EN (English)

Documentation

  • Premiers pas
  • Transcodage EN (English)
  • FAQ
  • API
  • Guides/Astuces dev
  • Formats pris en charge EN (English)

Plus

  • État de la plateforme⁠
  • Forum de la communauté⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Confidentialité EN (English)Conditions EN (English)Mentions légales EN (English)
EnglishDeutschEspañolFrançaisPortuguês (Brasil)