@darst

Как узнать, что файл на сервере изменился без закачки самого файла?

Здравствуйте. Как с помощью go можно узнать, что файл на сервере был изменён без закачки самого файла на локальную машину. Потому что файл может весить и 2 кб и 2гб и закачивать каждый раз не измененный файл не есть хорошо.

1. Сравнение размеров файла не подойдёт. Потому что внутри они могут быть разные.
2. Сравнение по времени создания, тоже не подойдёт.

3. Есть вариант качать n байт и сравнивать хеш с тем же количеством из локального файла.
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ответы на вопрос 3
Наиболее достоверный способ – при загрузке файла на удаленный сервер, прикладывать к нему хеш-сумму (или вычислять ее на сервере после загрузки автоматически). Тогда для проверки факта что файл изменился достаточно сверить хеш-суммы удаленного и локального файла.
Ответ написан
@antonwx
3. Есть вариант качать n байт и сравнивать хеш с тем же количеством из локального файла.

А если изменение произошло после этих N байт?
Имхо самое надёжное - сверять дату и размер + в любом случае перекачивать файл раз в некоторое время. Ну а вообще лучше всего такую проверку делать на сервере, если к нему есть доступ.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Побайтово (блоками) качайте с сервера и читайте с локального диска.
Выставите лимит для валидации байт-совпадения.

И сравнивайте между собой:
1. Совпало до лимита - файлы одинаковы, прерываем скачивание.
2. Нет - качаем до конца обновлённый файл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы