Я искал способ хэширования файлов, которыми манипулируют в действии кода Zapier, и, поскольку Zapier по умолчанию не предоставляет такие криптопреобразования, я приступил к его реализации в Javascript.
Приведенный ниже код делает это:
- извлекает файл из общедоступного URL-адреса
- , хэширует указанный файл, используя sha256
- , возвращает хеш ввывод
const crypto = require('crypto');
return fetch(inputData.fileUrl)
.then((res)=>{
console.log(res.ok);
console.log(res.status);
console.log(res.statusText);
return res.buffer()
})
.then((buffer)=>{
const hash = crypto.createHash('sha256');
hash.update(buffer);
callback (null, {"hashValue":hash.digest('hex')});
})
.catch(callback)
Я в основном вызываю 'fetch' для URL S3, возвращая результат в виде вызова buffer () для объекта ответа.Затем я создаю объект «crypto» из указанного буфера, из которого я создаю хеш-код sha256 и шестнадцатеричный дайджест.
Примечание. Действия кода Javascript в Zapier могут принимать только строки в качестве входных параметров, поэтому любые файлы, которые вы хотитехэш должен проходить через пространство хранения (например, корзину AWS S3), имеющее общедоступный URL .Если вы манипулируете личными / конфиденциальными данными, вы можете удалить файл в последующем действии в вашем zap.Остерегайтесь также символов не ascii в URL (например, выборка из AWS S3 возвращает ошибку 403 Forbidden, если ваш URL содержит такие символы, как '€')
Я надеюсь, что пользователи Zapier найдут это полезным, например, для автоматизации рабочих процессов.где необходимо обеспечить целостность данных файла (учет, выставление счетов ...)