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?