Comparando duas imagens sem fazer o download completo?

1

Quero fazer o download de uma cópia de um arquivo de imagem grande (+ 20MB) sempre que ela for alterada. Mas sem baixá-lo a cada X segundos e compará-lo com a versão antiga que tenho, como saberia se a imagem mudou ou não? Caso contrário, seria muito demorado e lento na largura de banda.

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

Podemos comparar duas imagens sem baixá-las (ou baixando apenas alguns kilobytes)? Em outras palavras, as imagens contêm uma informação de tamanho ou um valor de hash? Ou algo assim.

    
por destor 09.06.2015 / 18:28

2 respostas

1

O Wget permite que você baixe apenas quando o arquivo do lado do servidor é 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.
    
por 09.06.2015 / 18:41
1

Abordagem 1: O servidor de arquivos pode permitir acesso ao diretório. Tente acessar e, em seguida, analisar a saída do diretório pai. Exemplo: link

Abordagem 2: No código, recupere o campo de cabeçalho "content-length" para obter o tamanho do arquivo que may pode ser um indicador de que o arquivo foi alterado. Exemplo: link

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

    
por 09.06.2015 / 19:27