gzip
não produz arquivos compactados em bloco (consulte a RFC para obter detalhes sangrentos ), por isso não é adequado para acesso aleatório. Você pode começar a ler em um stream e parar quando quiser, e é por isso que o seu exemplo de curl -r 0-2024
funciona, mas você não pode escolher um stream no meio.
Para conseguir o que você está tentando fazer, é necessário usar algum tipo de compactação de bloco; por exemplo bgzip
(que produz arquivos que podem ser descomprimidos por% normalgzip
) ou bzip2
, e fazer algum trabalho no final do recebimento para determinar onde estão os limites do bloco. Peter Cock escreveu alguns posts interessantes sobre o assunto: BGZF - Blocked, Bigger & ; Melhor GZIP! , Acesso aleatório ao BZIP2?