Инструмент уведомлений для постоянной проверки обновлений удаленного файла (по URI)

Сценарий использования

Кто-то регулярно загружает новые PDF-файлы на свою веб-страницу и обновляет старые. Я копирую их на свой жесткий диск, однако, к сожалению, меня не уведомляют о каких-либо обновлениях файлов.

Требования

  1. Может сохранять таблицу, которая сопоставляет пути к локальным файлам с URI, откуда они были загружены.
    Отображение предполагается вводить вручную, конечно.

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

  3. Умеет делегировать как локальный, так и удаленный файл программе сравнения, что я могу указать в настройках.
    Средство проверки обновлений, вероятно, загрузит удаленный файл во временное расположение и вызовет программу сравнения с[path to local file] [path to temporarily saved remote file]

Цена: предпочтительнее бесплатный и с открытым исходным кодом, но я бы, тем не менее, заплатил до 10 евро.

Я использую сайт changeetection.com/ для обнаружения изменений веб-страницы. Я не знаю, будет ли это работать для PDF, но почему бы и нет? Он просто извлекает содержимое URL-адреса, сравнивает его с предыдущим и отправляет вам электронное письмо, если есть какие-либо изменения. Попробуйте и дайте нам знать, пожалуйста. Мне было бы интересно узнать, работает ли это для вашей морской свинки.
@Mawg Хорошая идея! Я только что попробовал, но, к сожалению, веб-сайт предупреждает. Этот адрес (...) относится к типу контента (приложение/pdf), который не поддерживается ChangeDetection .
Вздох! Ну, по крайней мере, вы узнали об услуге, которая может пригодиться для других целей. Удачи в поиске решения. Разве вы не можете попросить владельца файлов создать список рассылки, чтобы уведомлять о новых выпусках? Даже простая HTML-страница со ссылками на PDF-файлы и номером версии или датой публикации может быть использована с ChangeDetection.

Ответы (1)

Небольшой скрипт на Python можно легко периодически запускать, чтобы:

  1. Прочитайте файл сопоставления, возможно, как файл ini или csv (стандартные библиотеки для обоих), если для некоторых файлов требуются имя пользователя и/или пароли, они также могут быть в файле сопоставления.
  2. Получить удаленный файл (файлы), возможно, используя библиотеку запросов из URI, во временный каталог.
  3. Вычислите соответствующие хэши , например, MD5 или SHA-1 и
  4. Уведомлять вас об измененных файлах с возможностью
    1. Перезаписать локальный файл
    2. Запустите программу сравнения

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

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

  • свободно
  • Открытый исходный код
  • кроссплатформенный