Montar el servidor HTTP como sistema de archivos

9

Tengo una máquina en la que deseo montar varios servidores remotos para acceder a todos de forma centralizada. Para sistemas remotos basados ​​en Linux, estoy usando SSHFS que funciona bien. Pero para los sistemas Windows, o sistemas sin SSH, todos tienen algún tipo de servidor HTTP instalado que comparte los archivos (por lo que todos tienen habilitada la exploración de directorios).

¿Puedo montar un servidor HTTP como un sistema de archivos local como SSHFS, para poder tener todos estos servidores remotos montados localmente y presentados de manera uniforme?

jwbensley
fuente
1
Alguien por ahí podría haber escrito una herramienta para simular esto, pero lo dudo. La forma en que los servidores HTTP suelen presentar la información no es muy propicia para ello.
Ricitos de Oro
Como anteriormente. Además, la navegación HTTP es solo eso: navega y lee, no admite la carga. Me gustaría compartir la carpeta (s) para montar a través de SMB / CIFS o FTP. Alternativamente, mire WebDAV y estoy seguro de que puede encontrar una implementación de IIS.
Dave C
2
@goldilocks alguien por ahí lo convirtió en un estándar hace más de 10 años.
jordanm
Vive y aprende. :)
goldilocks
1
@DaveC Bueno, por lo general, la exploración de directorios no admite la carga, sin embargo, no mencioné que quería acceso de solo lectura. Aunque HTTP sí mismo admite la carga con el método PUT.
jwbensley

Respuestas:

8

Puede hacer esto usando WebDAV . Esta es una extensión HTTP que es compatible con la mayoría de los servidores web, incluidos IIS y Apache. WebDAV se puede montar en Linux a través del davfs2módulo FUSE.

jordanm
fuente
1
davfs2... o fusedavo avfso gvfs(Gnomo / Nautilus) al menos.
Stéphane Chazelas
5

El problema con HTTP simple es que es solo para recuperar contenido. No hay un concepto de carpeta o lista de archivos.

Algunos servidores web le permiten navegar por las estructuras de directorios mediante la generación de buenas páginas HTML con enlaces a archivos para directorios. Y al menos, cosas como lftpson capaces de analizar algunos de los formatos comunes en los que se generan esos índices y le dan la impresión de que es un protocolo de transferencia de archivos, pero en realidad no lo es, y no conozco ningún sistema de archivos de fusibles que pueda parse indexa la forma en que lo lftphace.

DAV es una extensión que simplemente hace eso y ya está cubierta por la respuesta de jordanm.

Pero tenga en cuenta que si no necesita enumerar directorios, avfsal menos puede permitirle acceder a páginas web a través del sistema de archivos.

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

Ahora también tenga en cuenta que también puede instalar sshd(a través de cygwin) o un FTP o Apache con DAV en una máquina Windows, por lo que debería poder hacer lo mismo que en las máquinas Unix.

Stéphane Chazelas
fuente
¿No se consideraría que la porción de ruta de una URL HTTP corresponde a una estructura de directorio bajo la raíz? Además, muchos servidores web ofrecen una lista de archivos si solicita una URL que termina con un directorio, no un archivo. y luego estos dos conceptos podrían traducirse a este modelo de montaje de un servidor HTTP como un sistema de archivos. ahora, en lo que respecta a la publicación de cambios en dicho montaje, no estoy seguro de eso, pero tal vez algunos servidores web podrían configurarse para hacerlo de manera muy similar a FTP
anfibio
@amphibient, sí, lo que llamas a file listinges lo que yo llamo a generated HTML page with links to file. Todavía necesita ser analizado y no hay un estándar en el formato de esas páginas. Solo en Apache hay varios módulos que generan esos índices que se pueden ajustar de muchas maneras diferentes. Entonces no hay una solución infalible. Como dije, ve lftpque intenta analizar muchas de esas páginas de listado .
Stéphane Chazelas
1

El problema principal ya cubierto anteriormente es: directorio / listado de árbol.

Aunque su pregunta es bastante antigua y podría haber hecho lo contrario, recientemente escribí un sistema de archivos de fusibles que hace exactamente lo que necesita, siempre que escriba un pequeño script para darle el "árbol" de las URL.

Está allí: https://gitlab.com/BylonAkila/astreamfs

Tiene un script de ejemplo para el proveedor 1fichier, que puede adaptar a su propio servidor personal. Lo que hace el script es solo preparar todos los argumentos para astreamfs, de modo que el montaje muestre todos sus archivos y carpetas en el lugar correcto. Lo hace con la (in) famosa técnica de "raspado web", también conocida como leer páginas HTML y extraer partes relevantes de eso.

Todavía hay dos constantes principales, obviamente, en comparación con los montajes regulares como NFS o SSHFS:

  • El servidor http necesita manejar 'rangos' (la mayoría de los servidores pueden hacer eso)
  • ¡Es de solo lectura!
Bylon
fuente