Explorando el Robot /google/store en la serie Re-Loadit
Esta publicación del blog es la cuarta entrega de la serie que llamamos Re-loadit. En esta serie cubriremos varias funciones de Transloadit que todavía 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 funciones de Transloadit.
El Robot /google/store
En los últimos años, los desarrolladores han ido migrando de forma constante de los sistemas locales a la nube para almacenar datos. Una razón importante para pasarse a la nube es una mejor protección de tus datos, sobre todo en caso de un desastre natural. Algunos informes lo han confirmado y predicen que el mercado del almacenamiento en la nube crecerá hasta los $88,91 mil millones para 2022, lo que supone una enorme tasa de crecimiento anual del 23,7 %. Miles de millones de personas y miles de empresas optan por el almacenamiento en línea porque es cómodo, práctico, seguro y económico. Uno de los servicios de almacenamiento en la nube más populares que existen es Google Cloud Storage.
Queremos asegurarnos de que nuestros usuarios tengan la libertad de integrar este servicio directamente en sus Templates de Transloadit.
Por eso presentamos el Robot /google/store, que forma parte de la familia de Robots de Transloadit desde principios de 2018.

¿Qué puede hacer?
El Robot /google/store exportará todos los resultados de encoding de tu Assembly a un bucket de almacenamiento de Google que elijas.
Así, por ejemplo, podrías hacer que tus usuarios suban un video y luego usar el Robot /video/thumbs para crear miniaturas del video, antes de exportar las miniaturas a Google Cloud Storage, todo en una sola Assembly.
¡Veamos paso a paso cómo crearías una Assembly así!
Crear la Assembly
Antes de poder empezar a crear nuestra Assembly, necesitamos obtener el archivo JSON de la cuenta de servicio. Esto es necesario para que nuestras Assemblies puedan usar la API de Google Cloud. Para generar tu archivo JSON, ve a la sección de cuentas de servicio de la Google Cloud Console y crea una nueva cuenta de servicio. Después de asignarle un rol a la nueva cuenta de servicio, en el último paso, haz clic en Create key y selecciona JSON como tipo (la clave se descargará automáticamente).
Te recomendamos encarecidamente que guardes tu token de acceso en las credenciales de Template aquí en Transloadit. Para ello, primero selecciona Google Storage como tipo de credencial y luego completa tu Google Project Id y el nombre del bucket, así como el archivo JSON que descargamos antes.
Esto mantiene tu clave de acceso cifrada en nuestra base de datos y ayuda a evitar que usuarios malintencionados accedan a ella. Como puedes ver en la captura de pantalla de abajo, he llamado my_google_cred a mi credencial de Google. Necesitaremos este nombre más adelante, cuando empecemos a crear nuestra Assembly.

Estas son las Assembly Instructions que usé después de configurar correctamente mis credenciales de Template:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"thumbnailed": {
"use": [":original"],
"robot": "/video/thumbs",
"result": true,
"count": 1,
"ffmpeg_stack": "v7"
},
"exported": {
"use": ["thumbnailed"],
"robot": "/google/store",
"credentials": "my_google_cred",
"path": "screenshots/${file.original_basename}.${file.ext}"
}
}
}
En los dos primeros Steps, el Robot /upload/handle sube un archivo de video a Transloadit y luego el Robot /video/thumbs toma capturas de pantalla del video.
En el siguiente Step, las capturas de pantalla se exportan al
Robot /google/store. El parámetro credentials
accede a la credencial de Google Storage, que guardé en mis credenciales de Template con
el nombre my_google_cred. Luego, el parámetro path guarda las imágenes exportadas en una carpeta llamada
screenshots en mi almacenamiento de Google y nombra cada archivo con su nombre de archivo original.
Si te preocupan las colisiones, podrías añadir más
Assembly Variables a esta ruta, como
un hash MD5 (${file.md5hash}) o el ${unique_prefix}.
Para probar estas Assembly Instructions, ejecuta el siguiente código de Node.js en tu servidor, pasándole como argumento la ruta a un archivo de video local.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: { video: process.argv[2] },
params: {
steps: {
':original': {
robot: '/upload/handle',
},
thumbnailed: {
use: [':original'],
robot: '/video/thumbs',
result: true,
ffmpeg_stack: 'v7',
count: 1,
},
exported: {
use: ['thumbnailed'],
robot: '/google/store',
credentials: 'my_google_cred',
path: 'screenshots/${file.original_basename}.${file.ext}',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Los resultados
¡Nuestra Assembly parece funcionar a la perfección! Después de ejecutar el código de Node.js anterior, aparece una imagen con el mismo nombre que mi archivo de video en mi carpeta de capturas de pantalla.

Esperamos que esta publicación haya aclarado un poco más lo que el Robot /google/store puede hacer por ti y cómo se puede implementar.
¡Nos vemos en la próxima publicación de nuestra serie Re-loadit!
