Я хотел бы вычислить хэш ресурса (например, PDF) из URL-адреса. С этой целью я написалNode.js: вывести запрос запроса в crypto.hash
const computeHash = co.wrap(function* main(url) {
const response = yield promisify(request)(url);
// assume response.status === 200
const buf = new Uint8Array(response.arrayBuffer);
const hash = crypto.createHash('sha1');
hash.update(buf, 'binary');
return hash.digest('hex');
});
использоваться
const hash = yield computeHash('http://arxiv.org/pdf/1001.1234v3.pdf');
Что мне нравится код:
- Это генератор, так что я могу
yield
это. Всего в шаге отasync
/await
.
Что мне не нравится:
- Это не правильно вычислить хэш. :)
- Завершается
request
и тело ответа в целом подключено к функцииhash
. Я предпочел бы передать выводrequest
в функцию хэша.
Любые подсказки?
Откуда вы знаете, что он неправильно вычисляет хэш? С чем вы сравниваете? – mscdex
Вычисляется локально 'sha1sum'. И он всегда вычисляет один и тот же хеш, независимо от URL. –