Re-Loadit : téléverser simplement avec le Robot /upload/handle
Cet article de blog est la troisième partie de la série que nous appelons Re-loadit. Dans ces articles, nous abordons plusieurs fonctionnalités de Transloadit qui n’ont pas encore été correctement présentées à nos utilisateurs.
Comme pour les autres présentations de Robot, nous vous donnerons quelques exemples, expliquerons les fonctionnalités clés du Robot et vous proposerons quelques conseils pour bien démarrer. Nous espérons que vous aurez plaisir à découvrir comment tirer parti de l’étendue des fonctionnalités de Transloadit.
Le Robot /upload/handle
L’une des nombreuses façons de fournir à Transloadit un fichier à transcoder est le Robot /upload/handle. Ce Robot gère sans aucun problème le téléversement d’un seul fichier comme de plusieurs fichiers. C’est de loin la méthode la plus simple pour téléverser des fichiers vers Transloadit, et elle peut s’utiliser avec vos formulaires HTML.
Vous n’avez pas besoin de définir plusieurs points de téléversement pour envoyer plusieurs fichiers, car le Robot /upload/handle peut traiter plusieurs téléversements en une seule fois, grâce à notre bibliothèque node-formidable. Les fichiers constituent différents champs d’un téléversement multipart. Ce Robot peut aussi gérer sans effort la reprise des téléversements interrompus grâce à tus, notre propre protocole open source pour les téléversements avec reprise, qui est en passe de devenir le standard du secteur.

Pourquoi faire de /upload/handle un Robot ?
Eh bien, pourquoi faire quelque chose vous-même quand un Robot peut le faire en une fraction du temps ! 😎
Blague à part, si le Robot /upload/handle ne fait partie de la famille des Robots Transloadit que depuis mai de l’année dernière, sa fonctionnalité de base fait partie intégrante de notre service depuis le tout début. Il s’est toutefois avéré que nos clients avaient aussi réellement besoin d’un moyen de définir des métadonnées (et d’autres options) pour les fichiers téléversés, et pas seulement pour les résultats de transcodage.
C’est précisément pour cela que nous avons développé un Robot dédié à la gestion des
téléversements de fichiers. Désormais, pour savoir si des fichiers téléversés comportaient des zones
transparentes, il suffisait de définir output_meta : {has_transparency: true} sur le
Robot /upload/handle, et meta.has_transparency était
automatiquement défini sur les résultats.
Que peut-il faire ?
Son nom laisse déjà deviner sa fonction. Le Robot /upload/handle téléverse vers Transloadit tous les fichiers dont vous avez besoin, afin qu’ils soient disponibles pour les Steps d’encodage. Pour illustrer son fonctionnement, je vais vous montrer comment importer des fichiers quelconques et vérifier depuis le tableau de bord de Transloadit qu’ils ont bien été téléversés.
Nous allons téléverser des fichiers vers Transloadit via une Assembly, puis nous connecter à notre tableau de bord Transloadit pour vérifier que les fichiers sont bien arrivés.
Créer l’Assembly
Voici les Assembly Instructions que j’ai utilisées :
{
"steps": {
":original": {
"robot": "/upload/handle"
}
}
}
Que se passe-t-il donc dans le code ci-dessus ? Nous avons défini des Assembly Instructions qui demandent à Transloadit de gérer les fichiers téléversés. Comme nous n’avons ajouté aucun autre Step, Transloadit n’effectuera aucun traitement supplémentaire sur ces fichiers.
Pour essayer ces Assembly Instructions, exécutez le code Node.js suivant
sur votre serveur, en remplaçant PATH_TO_LOCAL_VIDEO_FILE par le chemin de votre fichier.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: { file_1: 'PATH_TO_LOCAL_VIDEO_FILE' },
params: {
steps: {
':original': {
robot: '/upload/handle',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Après avoir testé le code, connectez-vous à votre tableau de bord, cliquez sur Assemblies dans la barre latérale, puis sur la première Assembly affichée. Vous devriez obtenir un résultat comme celui-ci :

Notez que votre fichier apparaîtra dans la section des fichiers téléversés.
Tester avec plusieurs fichiers
Nous pourrions tester le téléversement de plusieurs fichiers exactement comme pour un seul fichier, mais je pense qu’il vaut mieux utiliser un autre exemple, qui montre comment téléverser plusieurs fichiers dans un scénario plus réaliste. Dans cet exemple, nous allons incruster des sous-titres dans un fichier vidéo à l’aide du Robot /upload/handle et du Robot /video/subtitle. Jetez un œil aux Assembly Instructions :
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"subtitled": {
"robot": "/video/subtitle",
"preset": "ipad-high",
"use": {
"steps": [
{ "name": ":original", "fields": "video", "as": "video" },
{ "name": ":original", "fields": "subtitle", "as": "subtitles" }
]
}
}
}
}
Dans le bloc de code ci-dessus, nous avons utilisé le Robot
/upload/handle pour importer deux fichiers différents, puis déclaré un
Step subtitled, dans lequel nous avons indiqué lequel des
fichiers téléversés est la vidéo et lequel est le fichier de sous-titres, c’est-à-dire ce qu’attend le
Robot /video/subtitle dans son paramètre use.
Notez que les « fields » des filtres
usedésignent les champs de saisie d’après leur attribut name. Autrement dit, le nom que vous donnez à votre fichier lors de son téléversement.
Nous pouvons aussi essayer ces Assembly Instructions en exécutant le code Node.js suivant sur votre serveur, en remplaçant les deux chemins de fichiers locaux :
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: {
video: 'PATH_TO_LOCAL_VIDEO_FILE',
subtitle: 'PATH_TO_LOCAL_SUBTITLE_FILE',
},
params: {
steps: {
':original': {
robot: '/upload/handle',
},
subtitled: {
robot: '/video/subtitle',
preset: 'ipad-high',
use: {
steps: [
{ name: ':original', fields: 'video', as: 'video' },
{ name: ':original', fields: 'subtitle', as: 'subtitles' },
],
},
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Les résultats
En consultant l’Assembly dans mon tableau de bord Transloadit, je constate que :
-
Pour le téléversement d’un seul fichier, mon fichier a bien été téléversé vers Transloadit. Aucun encodage supplémentaire n’a été effectué sur le fichier, conformément aux Assembly Instructions
-
Pour le téléversement de plusieurs fichiers, mes fichiers ont bien été téléversés et le fichier de sous-titres a été incrusté dans ma vidéo.
J’espère que cet article vous a montré à quel point le Robot /upload/handle est puissant et essentiel, et combien il est facile d’accéder à plusieurs fichiers téléversés avec ce Robot.
Dans le prochain épisode de la série Re-loadit, nous parlerons de notre Robot /google/store. Restez à l’écoute !
