Como alterar o arquivo do URL sem baixar o arquivo inteiro?

1

Eu tenho um sistema que precisa obter as últimas 200 linhas de um arquivo público muito grande todos os dias. O arquivo é exposto por uma URL. Atualmente eu corro um script simples que faz um wget e depois coroa as últimas 200 linhas em um arquivo diferente, após o qual o arquivo original é deletado novamente.

Como o arquivo original é muito grande (cerca de 250 MB), na maioria das vezes, o script é executado ao baixar o arquivo.

Meu sistema funciona bem, mas é muito chato demorar tanto, também porque estou sempre esperando por ele.

Eu encontrei sugestões como esta , mas isso basicamente faz o mesmo que eu faço agora; baixando o arquivo inteiro e seguindo-o.

Alguém sabe uma maneira que eu posso seguir o arquivo público sem baixá-lo completamente? Todas as dicas são bem vindas!

    
por kramer65 13.11.2017 / 10:26

2 respostas

0

Se o servidor em que o arquivo está armazenado suportar o download contínuo, você poderá iniciar o download a partir de qualquer deslocamento usando a opção --start-pos de wget .

Você precisa obter o tamanho do arquivo (usando algo como curl -I ), calcular uma estimativa aproximada das últimas 200 linhas e usar a diferença como o deslocamento inicial.

    
por 13.11.2017 / 11:07
0

Se você usar a opção -c|--continue , wget fará o download da parte ausente e a adicionará à sua cópia existente:

-c
--continue
    Continue getting a partially-downloaded file. This is useful when you want to finish up 
    a download started by a previous instance of Wget, or by another program. For instance:

    wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z

    If there is a file named ls-lR.Z in the current directory, Wget will assume that it
    is the first portion of the remote file, and will ask the server to continue the 
    retrieval from an offset equal to the length of the local file. 

Não que isso exija que o servidor suporte a opção "Intervalo" de HTTP, exatamente como a opção --start-pos na resposta @efotinis '. Isso é chamado de serviço de byte .

    
por 14.11.2017 / 10:38

Tags