Apresentando o Robot /file/hash para integridade de arquivos
É hora de dar as boas-vindas a mais um Robot na família da Transloadit. Conheça o /file/hash Robot. Com sua chegada, agora é possível gerar o hash de qualquer arquivo que faça parte do processo de execução da sua Assembly, o que é especialmente útil para verificar a integridade do seu arquivo.
Você também tem vários algoritmos à disposição, seja para usar o rápido algoritmo MD5 ou uma opção mais segura, como o SHA-512.
Depois que o Robot terminar de gerar o hash do seu arquivo,
ele armazenará esse hash na propriedade file.meta.hash, para que você possa acessá-lo
nos Steps posteriores.

Hashing de arquivos em ação
Como exemplo, vamos ver como seria um Template para verificar se um arquivo mudou depois de ser redimensionado. Primeiro, vamos gerar o hash do arquivo enviado por upload. Depois, vamos redimensionar o arquivo original e gerar seu hash novamente. Basta comparar o hash da imagem redimensionada com o da imagem original. Se forem diferentes, saberemos que os bytes do arquivo mudaram; o hash, por si só, não prova que houve uma operação de redimensionamento.
Veja como isso fica:
{
"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"
}
}
}
Percebeu que estamos usando o algoritmo sha1? Você pode alterar facilmente
o parâmetro algorithm para qualquer uma das opções abaixo e gerar hashes com
algoritmos diferentes para casos de uso distintos.
b2md5sha1sha224sha256sha384sha512
Testes
Agora, vamos colocar nosso Template à prova. Faça o upload de uma imagem e observe o hash gerado para o arquivo e se ele muda ao longo dos nossos Steps.
hash_original
meta.hash:924eb08378f97f1fe2744b77a79373078af3487chash_resized
meta.hash:c51c917811c2b3a515c303b682c610224aa77621Como esperado, os hashes gerados para os nossos dois arquivos são diferentes, o que significa que seus bytes são diferentes. O redimensionamento é comprovado pelo nosso fluxo de trabalho, e não pelos hashes isoladamente.
Até a próxima
Aqui termina nossa breve apresentação do /file/hash Robot. Cadastre-se na Transloadit abaixo e experimente esse Robot por conta própria, assim como nossa variedade de outros Robots.
