Presentamos el Robot /file/hash para la integridad de archivos
Es hora de dar la bienvenida a un nuevo Robot a la familia de Transloadit. Saluda al Robot /file/hash. Con su llegada, ahora es posible calcular el hash de cualquier archivo que forme parte del proceso de ejecución de tu Assembly, lo que resulta especialmente útil para verificar la integridad de tu archivo.
También tienes a tu disposición varios algoritmos para elegir, ya sea que quieras usar el veloz algoritmo MD5 o una opción más segura, como SHA-512.
Cuando el Robot termine de calcular el hash de tu archivo,
guardará el hash del archivo en la propiedad file.meta.hash, para que puedas acceder
a él en Steps posteriores.

Hash de archivos en acción
Como ejemplo, veamos cómo podría ser un Template si quisiéramos verificar que un archivo ha cambiado después de haber sido redimensionado. Primero tomaremos el archivo que subimos y calcularemos su hash. Luego, redimensionaremos el archivo original y volveremos a calcular su hash. Basta con comparar el hash de la imagen redimensionada con el de la imagen original. Si son diferentes, entonces sabemos que nuestro archivo ha sido redimensionado.
Así es como se ve:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"resize_image": {
"use": ":original",
"robot": "/image/resize",
"height": 500,
"imagemagick_stack": "{{stacks.imagemagick.recommended_version}}",
"resize_strategy": "fit"
},
"hash_original": {
"use": ":original",
"robot": "/file/hash",
"result": true,
"algorithm": "sha1"
},
"hash_resized": {
"use": "resize_image",
"robot": "/file/hash",
"result": true,
"algorithm": "sha1"
}
}
}
¿Notas que estamos usando el algoritmo sha1? Puedes cambiar fácilmente el parámetro algorithm a cualquiera
de estas opciones para generar hashes con distintos algoritmos según el caso de uso.
b2md5sha1sha224sha256sha384sha512
Pruebas
Ahora, pongamos a prueba nuestro Template. Sube una imagen y observa el hash que se genera para el archivo, y si cambia a lo largo de nuestros Steps.
hash_files
meta.hash:924eb08378f97f1fe2744b77a79373078af3487cresize_image
meta.hash:c51c917811c2b3a515c303b682c610224aa77621Como era de esperar, los hashes generados para ambos archivos son diferentes, lo que significa que nuestra imagen fue redimensionada.
Hasta la próxima
Así termina nuestro recorrido exprés por el Robot /file/hash. Regístrate abajo en Transloadit y prueba tú mismo este Robot, así como nuestra gama de otros Robots.
