Monter le serveur HTTP en tant que système de fichiers

9

J'ai une machine sur laquelle je souhaite monter plusieurs serveurs distants pour y accéder de manière centralisée. Pour les systèmes distants basés sur Linux, j'utilise SSHFS qui fonctionne très bien. Mais pour les systèmes Windows ou les systèmes sans SSH, ils ont tous une forme de serveur HTTP installé partageant les fichiers (ils ont donc tous la navigation dans les répertoires activée).

Puis-je monter un serveur HTTP en tant que système de fichiers local comme SSHFS, afin de pouvoir monter tous ces serveurs distants localement et les présenter de manière uniforme?

jwbensley
la source
1
Quelqu'un pourrait avoir écrit un outil pour simuler cela, mais j'en doute. La façon dont les serveurs HTTP présentent généralement les informations n'est pas très propice à cela.
goldilocks
Comme ci-dessus. De plus, la navigation HTTP n'est que cela - elle parcourt et lit, ne prend pas en charge le téléchargement. Je chercherais à partager le ou les dossiers à monter via SMB / CIFS ou FTP. Vous pouvez également regarder WebDAV et je suis sûr que vous pouvez trouver une implémentation IIS.
Dave C
2
@goldilocks quelqu'un là-bas en a fait une norme il y a plus de 10 ans.
jordanm
Vivre et apprendre. :)
goldilocks
1
@DaveC Eh bien, la navigation dans les répertoires ne prend généralement pas en charge le téléchargement, mais je n'ai pas mentionné que je voulais un accès en lecture seule. Bien qu'il soit autonome, HTTP prend en charge le téléchargement avec la méthode PUT.
jwbensley

Réponses:

8

Vous pouvez le faire en utilisant WebDAV . Il s'agit d'une extension HTTP prise en charge par la plupart des serveurs Web, notamment IIS et Apache. WebDAV peut être monté sous linux via le davfs2module FUSE.

jordanm
la source
1
davfs2... ou fusedavou avfsou gvfs(Gnome / Nautilus) au moins.
Stéphane Chazelas
5

Le problème avec HTTP simple est que c'est juste pour récupérer du contenu. Il n'y a aucun concept de dossier ou de liste de fichiers.

Certains serveurs Web vous permettent de parcourir les structures de répertoires en générant de belles pages HTML avec des liens vers des fichiers pour les répertoires. Et au moins des choses comme lftpsont capables d'analyser certains des formats courants sous lesquels ces index sont générés et vous donnent l'impression qu'il s'agit d'un protocole de transfert de fichiers, mais ce n'est pas vraiment le cas, et je ne connais aucun système de fichiers à fusibles qui puisse analyser les index comme le lftpfait.

DAV est une extension qui fait juste cela et est déjà couverte par la réponse de jordanm.

Mais notez que si vous n'avez pas besoin de répertorier les répertoires, avfsvous pouvez au moins vous permettre d'accéder aux pages Web via le système de fichiers.

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

Notez également que vous pouvez également installer sshd(via cygwin) ou un FTP ou Apache avec DAV sur une machine Windows, donc vous devriez pouvoir faire les mêmes choses que vous faites sur les machines Unix.

Stéphane Chazelas
la source
la partie chemin d'une URL HTTP ne serait-elle pas considérée comme correspondant à une structure de répertoire sous la racine? de nombreux serveurs Web proposent également une liste de fichiers si vous demandez une URL se terminant par un répertoire, et non un fichier. puis ces deux concepts pourraient être traduits dans ce modèle de montage d'un serveur HTTP en tant que système de fichiers. maintenant, en ce qui concerne la publication de modifications sur un tel montage, je ne suis pas sûr de cela, mais peut-être que certains serveurs Web pourraient être configurés pour le faire un peu comme FTP
amphibient
@amphibient, oui, ce que vous appelez un file listingest ce que j'appelle un generated HTML page with links to file. Il doit encore être analysé et il n'y a pas de norme sur le format de ces pages. Sur Apache seul, il existe plusieurs modules générant ces index qui peuvent être réglés de différentes manières. Il n'y a donc pas de solution infaillible. Comme je l'ai dit, voir lftpqui essaie d'analyser bon nombre de ces pages de liste .
Stéphane Chazelas
1

le principal problème déjà abordé ci-dessus est: la liste des répertoires / arborescences.

Bien que votre question soit assez ancienne et que vous auriez pu faire autrement, j'ai récemment écrit un système de fichiers fusible qui fait exactement ce dont vous avez besoin, à condition que vous écriviez un petit script pour lui donner "l'arborescence" des URL.

C'est là: https://gitlab.com/BylonAkila/astreamfs

Vous avez un exemple de script pour le fournisseur 1fichier, que vous pouvez adapter à votre propre serveur personnel. Le script ne fait que préparer tous les arguments pour astreamfs, afin que le montage affiche tous vos fichiers et dossiers au bon endroit. Il le fait avec la (in) fameuse technique de "web scraping", c'est-à-dire lire des pages HTML et en extraire des parties pertinentes.

Il y a toujours deux contraintes majeures, évidemment, par rapport aux montages réguliers comme NFS ou SSHFS:

  • Le serveur http doit gérer les «plages» (la plupart des serveurs peuvent le faire)
  • C'est en lecture seule!
Bylon
la source