Comparando duas imagens sem fazer o download completo?

Comparando duas imagens sem fazer o download completo?

Quero baixar uma cópia de um arquivo de imagem grande (+20 MB) sempre que ele for alterado. Mas sem baixá-lo a cada X segundos e compará-lo com a versão antiga que tenho, como saberei se a imagem mudou ou não? Caso contrário, consumiria muita largura de banda e seria lento.

Existe uma maneira de determinar o tamanho da imagem antes de baixá-la completamente? Então, quando o tamanho mudou, isso significa que a imagem também mudou.

Podemos comparar duas imagens sem baixá-las (ou apenas baixando os primeiros kilobytes)? Em outras palavras, as imagens contêm informações de tamanho ou valor de hash? Ou algo assim.

Responder1

Wget permite que você baixe apenas quando o arquivo do lado do servidor for mais recente:

       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.

Responder2

Abordagem 1:O servidor de arquivos pode permitir acesso ao diretório. Tente acessar e analisar a saída do diretório pai. Exemplo:https://www.kernel.org/pub/site/

Abordagem 2:No código, recupere o campo de cabeçalho "content-length" para obter o tamanho do arquivo quepoderiaser um indicador de que o arquivo foi alterado. Exemplo:https://stackoverflow.com/questions/2983073/how-to-know-the-size-of-a-file-before-downloading-it/12271781#12271781

Abordagem 3:Peça ao administrador do servidor para fornecer uma soma de verificação que você possa baixar, uma notificação de que um novo arquivo está disponível ou alguma outra forma de acesso ao shell/diretório.

informação relacionada