Я хочу загружать копию большого файла изображения (+ 20 МБ) всякий раз, когда он изменяется. Но не загружая его каждые X секунд и сравнивая его со старой версией, которая у меня есть, как я узнаю, что изображение изменилось или нет? В противном случае это будет очень затратным по полосе пропускания и медленным.
Есть ли способ определить размер картинки перед ее полной загрузкой? Таким образом, когда размер изменился, это означает, что изображение тоже изменилось.
Можем ли мы сравнить два изображения, не загружая их (или просто загрузив первые несколько килобайт)? Другими словами, содержат ли изображения информацию о размере или хэш-значение? Или что-то типа того.
Ответы:
Wget позволяет загружать только, когда файл на стороне сервера новее:
источник
Подход 1: Файловый сервер может разрешить доступ к каталогу. Попробуйте получить доступ, а затем проанализировать вывод родительского каталога. Пример: https://www.kernel.org/pub/site/
Подход 2: В коде найдите поле заголовка «content-length», чтобы получить размер файла, который может быть индикатором того, что файл изменился. Пример: https://stackoverflow.com/questions/2983073/how-to-know-the-size-of-a-file-before-downloading-it/12271781#12271781
Подход 3: Попросите администратора сервера предоставить контрольную сумму, которую вы можете загрузить, уведомление о доступности нового файла или какую-либо другую форму доступа к оболочке / каталогу.
источник