Obtenha uma listagem de um arquivo 7zip em um servidor HTTP remoto

0

Há um servidor na Internet que hospeda terabytes de dados encapsulados em vários arquivos 7zip (.7z). Alguns, mas não todos, desses dados são interessantes para mim. Eu só sei quais dados são interessantes se eu puder inspecionar os nomes dos arquivos no arquivo.

Pergunta: Como posso recuperar a listagem de um arquivo 7zip do servidor HTTP remoto, sem baixar primeiro o arquivo inteiro ?

Esses arquivos variam em tamanho de um megabyte a um gigabyte, e eu realmente não quero perder tempo e largura de banda baixando um arquivo se ele não contiver dados que eu possa usar.

Adendo: Eu pensei em uma solução bastante tortuosa para o problema, mas não consigo parar de pensar que tem de haver uma solução mais fácil e que certamente outras pessoas enfrentaram (ou enfrentarão) esse mesmo problema.

    
por Multimedia Mike 28.10.2015 / 17:22

2 respostas

1

Eu encontrei uma maneira de fazer isso em um sistema que suporta Sistema de arquivos em USErspace (FUSE) . Estou respondendo a minha própria pergunta no caso de alguém ter a necessidade de realizar a mesma coisa.

Existe um módulo FUSE chamado link que permite montar um URL HTTP para que ele apareça como se for parte do sistema de arquivos local. O httpfs2 é capaz de buscar intervalos específicos de bytes do servidor remoto em resposta às chamadas de leitura do sistema de arquivos que um programa faz.

Para instalar esta ferramenta no Ubuntu Linux:

apt-get install httpfs2

Crie um ponto de montagem no sistema de arquivos:

mkdir mount-point

Monte o URL remoto:

httpfs2 http://remote.server.tld/path/archive-file.7z mount-point

Agora, o arquivo archive-file.7z parece parte do sistema de arquivos:

ls mount-point/archive-file.7z
7za l mount-point/archive-file.7z

Para desmontar o diretório:

fusermount -u mount-point

Essa abordagem permitirá que você liste o conteúdo de qualquer archive hospedado por HTTP (usando a ferramenta de arquivamento correta para listar o conteúdo) sem fazer o download do arquivo inteiro (possivelmente enorme).

    
por 12.03.2016 / 22:23
4

Não há nenhum método do lado do cliente apenas por meio de "HTTP" para facilitar o que você está solicitando.

Portanto, isso não acontecerá sem o servidor fornecer a lista, o que exigiria programação personalizada e / ou trabalho manual no lado do servidor para produzir a lista.

    
por 28.10.2015 / 17:29