Re-Loadit: simplifica las subidas con el Robot /upload/handle
Esta publicación del blog es la tercera parte de la serie que llamamos Re-loadit. En estas publicaciones, cubrimos varias funcionalidades de Transloadit que aún no han recibido una presentación adecuada para nuestros usuarios.
Al igual que en otras presentaciones de Robots, te daremos algunos ejemplos, explicaremos la funcionalidad clave del Robot y te ofreceremos algunos consejos para empezar. Esperamos que disfrutes aprendiendo más sobre cómo aprovechar la amplitud de funcionalidades de Transloadit.
El Robot /upload/handle
Una de las muchas maneras de proporcionar a Transloadit un archivo para transcodificar es el Robot /upload/handle. Este Robot gestiona sin problemas tanto las subidas de un solo archivo como las de varios archivos. Es, con diferencia, el método más sencillo para subir archivos a Transloadit, y se puede usar junto con tus formularios HTML.
No necesitas definir varios puntos de subida para subir varios archivos, ya que el Robot /upload/handle puede procesar varias subidas en una sola instancia, gracias a nuestra biblioteca node-formidable. Los archivos forman distintos campos en una subida multipart. Este Robot también puede gestionar sin esfuerzo las subidas reanudables de archivos usando el protocolo tus, nuestro propio protocolo de código abierto para subidas reanudables, que va camino de convertirse en el estándar de la industria.

¿Por qué tener /upload/handle como Robot?
Bueno, ¡por qué hacer algo tú mismo cuando un Robot podría hacerlo en una fracción del tiempo! 😎
Bromas aparte, aunque el Robot /upload/handle solo forma parte de la familia de Robots de Transloadit desde mayo del año pasado, su funcionalidad principal ha sido parte integral de nuestro servicio desde el principio. Sin embargo, resultó que nuestros clientes también necesitaban realmente una forma de definir metadatos (y otras opciones) para los archivos subidos, y no solo para los resultados de transcodificación.
Y por eso mismo desarrollamos un Robot para gestionar las subidas de archivos. Ahora, si
querías saber si los archivos subidos tenían áreas transparentes, solo tenías que establecer
output_meta : {has_transparency: true} en el Robot /upload/handle,
y meta.has_transparency se establecería automáticamente en los resultados.
¿Qué puede hacer?
Por el nombre ya podemos adivinar su funcionalidad. El Robot /upload/handle subirá a Transloadit todos los archivos que necesites, para que estén disponibles para los Steps de encoding. Como ejemplo de cómo funciona, te mostraré cómo importar archivos aleatorios y verificar desde el panel de Transloadit que se subieron correctamente.
Subiremos archivos a Transloadit mediante una Assembly y luego iniciaremos sesión en nuestro panel de Transloadit para verificar que los archivos llegaron sin problemas.
Crear la Assembly
Estas son las Assembly Instructions que usé:
{
"steps": {
":original": {
"robot": "/upload/handle"
}
}
}
Entonces, ¿qué ocurre en el código anterior? Hemos definido una Assembly Instruction que le pide a Transloadit que gestione los archivos subidos. Como no hemos añadido ningún otro Step, esto significa que Transloadit no realizará ningún procesamiento adicional a esos archivos.
Para probar estas Assembly Instructions, ejecuta el siguiente código de Node.js
en tu servidor, reemplazando PATH_TO_LOCAL_VIDEO_FILE por la ruta a tu archivo.
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
})
Después de probar el código, inicia sesión en tu panel, haz clic en Assemblies en la barra lateral, luego haz clic en la primera Assembly que veas, y deberías obtener un resultado como este:

Ten en cuenta que tu archivo aparecerá en la sección de archivos subidos.
Pruebas con varios archivos
Aunque podemos probar la subida de varios archivos exactamente igual que lo hicimos con un solo archivo, creo que será mejor usar un ejemplo distinto que muestre cómo subir varios archivos en un escenario más realista. En este ejemplo, incrustaremos un subtítulo en un archivo de video usando el Robot /upload/handle y el Robot /video/subtitle. Echa un vistazo a la Assembly Instruction:
{
"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" }
]
}
}
}
}
En el bloque de código anterior, hemos usado el Robot /upload/handle
para importar dos archivos distintos y luego hemos declarado un Step subtitled, donde
especificamos cuál de los archivos subidos es el video y cuál es el archivo de subtítulos, es decir,
el parámetro del Robot /video/subtitle: use.
Ten en cuenta que los «fields» dentro de los filtros
usecorresponden a los campos de entrada junto al atributo name. En otras palabras, el nombre que le das a tu archivo al subirlo.
También podemos probar estas Assembly Instructions ejecutando el siguiente código de Node.js en tu servidor, reemplazando las dos rutas de archivo locales:
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
})
Los resultados
Al revisar la Assembly en mi panel de Transloadit, observo que:
-
En la subida de un solo archivo, mi archivo se subió correctamente a Transloadit. No se realizó ningún encoding adicional sobre el archivo, tal como se indicaba en las Assembly Instructions
-
En la subida de varios archivos, mis archivos se subieron correctamente y el archivo de subtítulos quedó incrustado en mi video.
Espero que esta publicación haya demostrado lo potente y esencial que es el Robot /upload/handle, y lo fácil que es acceder a varios archivos que se subieron usando este Robot.
En la siguiente parte de la serie Re-loadit, hablaremos de nuestro Robot /google/store. ¡Así que mantente atento!
