Présentation du Robot /file/hash pour l’intégrité des fichiers
Il est à nouveau temps d’accueillir un nouveau Robot dans la famille Transloadit. Dites bonjour à /file/hash, notre nouveau Robot. Son arrivée permet désormais de hacher tout fichier faisant partie du processus d’exécution de votre Assembly, ce qui s’avère particulièrement utile pour vérifier l’intégrité de votre fichier.
Vous avez également le choix entre plusieurs algorithmes, que vous souhaitiez utiliser le rapide algorithme MD5 ou une option plus sûre, comme SHA-512.
Une fois le hachage de votre fichier terminé, le Robot
enregistre l’empreinte du fichier dans la propriété file.meta.hash, pour que vous
puissiez y accéder dans les Steps suivants.

Le hachage de fichiers en pratique
À titre d’exemple, voyons à quoi pourrait ressembler un Template permettant de vérifier qu’un fichier a changé après son redimensionnement. Nous allons d’abord hacher notre fichier téléversé. Ensuite, nous redimensionnerons le fichier d’origine et le hacherons à nouveau. Il suffit de comparer l’empreinte de l’image redimensionnée à celle de l’image d’origine. Si elles diffèrent, nous savons que les octets du fichier ont changé ; l’empreinte seule ne prouve pas qu’un redimensionnement a eu lieu.
Voici à quoi cela ressemble :
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"resize_image": {
"use": ":original",
"robot": "/image/resize",
"height": 500,
"imagemagick_stack": "v3.0.1",
"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"
}
}
}
Vous remarquez que nous utilisons l’algorithme sha1 ? Vous pouvez facilement
remplacer la valeur du paramètre algorithm par l’une des options ci-dessous
pour générer des empreintes avec différents algorithmes selon vos cas d’utilisation.
b2md5sha1sha224sha256sha384sha512
Tests
Mettons maintenant notre Template à l’épreuve. Téléversez une image, puis examinez l’empreinte générée pour le fichier et vérifiez si elle change au fil de nos Steps.
hash_original
meta.hash:924eb08378f97f1fe2744b77a79373078af3487chash_resized
meta.hash:c51c917811c2b3a515c303b682c610224aa77621Comme prévu, les empreintes générées pour nos deux fichiers sont différentes, ce qui signifie que leurs octets diffèrent. Le redimensionnement est établi par notre processus de traitement, et non par les seules empreintes.
À bientôt
Voilà qui conclut notre tour d’horizon de /file/hash, notre Robot de hachage de fichiers. Inscrivez-vous ci-dessous à Transloadit et expérimentez vous-même avec le Robot, ainsi qu’avec notre gamme d’autres Robots.
