Montar servidor HTTP como sistema de arquivos


9

Eu tenho uma máquina na qual desejo montar vários servidores remotos para acessá-los todos centralmente. Para sistemas remotos baseados em Linux, estou usando SSHFS, que funciona bem. Mas para sistemas Windows, ou sistemas sem SSH, todos eles têm algum tipo de servidor HTTP instalado compartilhando os arquivos (para que todos tenham a navegação de diretório ativada).

Posso montar um servidor HTTP como um sistema de arquivos local como SSHFS, para que todos esses servidores remotos sejam montados localmente e apresentados de maneira uniforme?


1
Alguém por aí pode ter escrito uma ferramenta para simular isso, mas duvido. A maneira como os servidores HTTP normalmente apresentam as informações não é muito favorável.
Goldilocks

Como acima. Além disso, a navegação HTTP é apenas isso - ele navega e lê, não suporta upload. Eu gostaria de compartilhar as pastas para montar via SMB / CIFS ou FTP. Como alternativa, consulte o WebDAV e tenho certeza de que você pode encontrar uma implementação do IIS.
Dave C

2
@goldilocks alguém por aí tornou um padrão bem mais de 10 anos atrás.
Jordanm 11/03

Viva e aprenda. :)
goldilocks

1
@DaveC Bem, normalmente a navegação no diretório não suporta o upload, mas não mencionei que queria acesso somente leitura. Embora o HTTP seja auto, ele suporta o upload com o método PUT.
jwbensley

Respostas:


8

Você pode fazer isso usando o WebDAV . Esta é uma extensão HTTP suportada pela maioria dos servidores Web, incluindo IIS e Apache. O WebDAV pode ser montado no Linux através do davfs2módulo FUSE.


1
davfs2... ou fusedavou avfsou gvfs(Gnome / Nautilus) pelo menos.
Stéphane Chazelas 11/03/2013

5

O problema com o HTTP simples é que é apenas para recuperar o conteúdo. Não há conceito de pasta ou lista de arquivos.

Alguns servidores da web permitem navegar nas estruturas de diretórios, gerando páginas HTML agradáveis ​​com links para arquivos de diretórios. E pelo menos coisas como lftpsão capazes de analisar alguns dos formatos comuns em que esses índices são gerados e dão a impressão de que é um protocolo de transferência de arquivos, mas não é realmente, e eu não conheço nenhum sistema de arquivos de fusível que possa analisar índices da maneira que lftpfaz.

DAV é uma extensão que apenas faz isso e já está coberta pela resposta de jordanm.

Mas observe que, se você não precisar listar diretórios, avfspelo menos poderá permitir que você acesse páginas da web pelo sistema de arquivos.

$ mkdir AVFS
$ avfsd AVFS
$ grep -w Reputation 'AVFS/#http:unix.stackexchange.com|users|12583|javano'
 <span class="count">731</span> Reputation

Agora observe também que você pode instalar sshd(via cygwin) ou um FTP ou Apache com DAV em uma máquina Windows, portanto, você poderá fazer as mesmas coisas que faz em máquinas Unix.


a parte do caminho de uma URL HTTP não seria considerada como correspondente a uma estrutura de diretórios na raiz? Além disso, muitos servidores da Web oferecem uma lista de arquivos se você solicitar um URL que termine com um diretório, não um arquivo. e, em seguida, esses dois conceitos poderiam ser traduzidos para este modelo de montagem de um servidor HTTP como um sistema de arquivos. Agora, tanto quanto afixação muda para tal um monte, eu não estou certo sobre isso, mas talvez alguns servidores web pode ser configurado para fazê-lo muito parecido com FTP
amphibient

@ anfibiente, sim, o que você chama de file listingé o que eu chamo de generated HTML page with links to file. Ele ainda precisa ser analisado e não há um padrão no formato dessas páginas. Somente no Apache, existem vários módulos gerando esses índices que podem ser ajustados de várias maneiras diferentes. Portanto, não há solução infalível. Como eu disse, veja lftpque tenta analisar muitas dessas páginas de listagem .
Stéphane Chazelas 11/03/2013

1

o principal problema já abordado acima é: lista de diretórios / árvores.

Embora sua pergunta seja bastante antiga e você possa ter feito o contrário, recentemente escrevi um sistema de arquivos com fusíveis que faz exatamente o que você precisa, desde que você escreva um pequeno script para fornecer a "árvore" dos URLs.

Está lá: https://gitlab.com/BylonAkila/astreamfs

Você tem um script de exemplo para o provedor 1fichier, que pode ser adaptado ao seu servidor pessoal. O que o script faz é apenas preparar todos os argumentos para o astreamfs, para que a montagem mostre todos os seus arquivos e pastas no lugar certo. Isso é feito com a (in) famosa técnica de "raspagem na web", também conhecida como leitura de páginas HTML e extração de partes relevantes.

Ainda existem dois constaints principais, obviamente, em comparação com montagens regulares como NFS ou SSHFS:

  • O servidor http precisa lidar com 'intervalos' (a maioria dos servidores pode fazer isso)
  • É somente leitura!
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.