1

Я хочу загружать копию большого файла изображения (+20 МБ) всякий раз, когда он изменяется. Но не загружая его каждые X секунд и сравнивая его со старой версией, которая у меня есть, как я узнаю, что изображение изменилось или нет? В противном случае это будет очень затратным по полосе пропускания и медленным.

Есть ли способ определить размер картинки перед ее полной загрузкой? Таким образом, когда размер изменился, это означает, что изображение тоже изменилось.

Можем ли мы сравнить два изображения, не загружая их (или просто загрузив первые несколько килобайт)? Другими словами, содержат ли изображения информацию о размере или хэш-значение? Или что-то типа того.

2 ответа2

1

Wget позволяет загружать только, когда файл на стороне сервера новее:

       When running Wget with -N, with or without -r or -p, the decision
       as to whether or not to download a newer copy of a file depends on
       the local and remote timestamp and size of the file.  -nc may not
       be specified at the same time as -N.
1

Подход 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: Попросите администратора сервера предоставить контрольную сумму, которую вы можете загрузить, уведомление о доступности нового файла или какую-либо другую форму доступа к оболочке / каталогу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .