Как создать хэш MD5 для файла, расположенного в URL Http? - PullRequest
3 голосов
/ 11 июля 2011

Я пишу сканер для поиска файлов и загрузки. Моя проблема в том, что я не хочу загружать те же файлы, которые уже загружены на локальный диск. Я знаю, что можно использовать хэш MD5 для сравнения, но как я могу сделать это по HTTP URL, не загружая их на локальный диск?

Если этот подход неверен. Пожалуйста посоветуйте лучшее решение

Ответы [ 3 ]

9 голосов
/ 11 июля 2011

Если веб-сервер не имеет какой-либо службы, которая разделяет MD5, тогда нет.

Для вычисления хэша файла требуется каждый байт в файле. Вот почему изменение одного байта изменяет хеш, чтобы предотвратить получение измененных файлов.

2 голосов
/ 11 июля 2011

Чтобы сгенерировать хеш, вам понадобятся данные (т.е. вам нужно как-то их загрузить).

Я бы посоветовал вам использовать вместо этого заголовок HTTP If-Modified-Since (или, может быть, ETag / If-None-Match, если его предоставляет конкретный сервер).

0 голосов
/ 11 июля 2011

Единственное сравнение, которое вы сможете выполнить для удаленного файла, - это сравнение размера.К сожалению, этого, вероятно, недостаточно для определения того, что содержимое идентично или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...