Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

С#: сравнение файла на веб-ресурсе и локальный файл

#c_sharp #веб_программирование #файлы #сравнение


Есть веб-сайт, на нем ссылка для скачивая файла "А". Есть локальная версия файла
А. Как можно их сравнить, чтобы не скачивать файл с интернета?

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

Как-то это можно реализовать?
    


Ответы

Ответ 1



Может это поможет? Сравнивать даты. Наткнулся на просторах Интернета. http://www.cyberforum.ru/windows-forms/thread1346241.html

Ответ 2



Только через Head запрос, сервер выдаст информацию о файле в виде заголовка, ну и остальное от сервера зависит, и нужно по ответ Athari проверить заголовки

Ответ 3



Проверьте, поддерживает ли веб-сервер кэширование для файлов. Для этого используются заголовки типа "ETag", "Cache-Control" и другие. Например, если сервер при скачивании файла указывает "ETag", то вы можете запомнить эту строчку и при повторном запросе указать её в заголовке "If-None-Match". Если файл на сервере не изменился, то сервер вернёт вам соответствующий HTTP код (304 Not Modified) с пустым телом ответа, то есть будут скачаны только HTTP заголовки, но не сам файл. См. HTTP ETag.

Ответ 4



Есть элегантное решение с помощью bash однострочника diff myFile <(ssh myHost 'cat myFile') И да можно сравнить два файла которые вообще на разных хостах с помощью третьего хоста. diff <(ssh myHost1 'cat myFile') <(ssh myHost2 'cat myFile') Правда это конечно создаст SSH траффик примерно равный размеру файла, но фактически файл скорее всего не будет скачан на жесткий диск. P.S. Вместо cat можно написать md5sum, а diff заменить на if , чтобы сравнить хэши, совсем избавившись от траффика. Правда в таком случае будет непонятно чем конкретно файлы отличаются.

Комментариев нет:

Отправить комментарий