Извлечение и хэширование файла из URL в действии кода Zapier в JavaScript - PullRequest
0 голосов
/ 12 сентября 2018

Я искал способ хэширования файлов, которыми манипулируют в действии кода Zapier, и, поскольку Zapier по умолчанию не предоставляет такие криптопреобразования, я приступил к его реализации в Javascript.

Приведенный ниже код делает это:

  1. извлекает файл из общедоступного URL-адреса
  2. , хэширует указанный файл, используя sha256
  3. , возвращает хеш ввывод

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 найдут это полезным, например, для автоматизации рабочих процессов.где необходимо обеспечить целостность данных файла (учет, выставление счетов ...)

...