Montare il server HTTP come file system


9

Ho una macchina su cui desidero montare più server remoti per accedervi tutti centralmente. Per i sistemi remoti basati su Linux sto usando SSHFS che funziona bene. Ma per i sistemi Windows o sistemi senza SSH, tutti hanno una qualche forma di server HTTP installato che condivide i file (quindi hanno tutti la navigazione nella directory abilitata).

Posso montare un server HTTP come file system locale come SSHFS, così posso avere tutti questi server remoti montati localmente e presentati in modo uniforme?


1
Qualcuno là fuori potrebbe aver scritto uno strumento per simulare questo, ma ne dubito. Il modo in cui i server HTTP presentano in genere le informazioni non è molto favorevole.
Riccioli d'oro

Come sopra. Anche la navigazione HTTP è proprio questo: sfoglia e legge, non supporta il caricamento. Vorrei esaminare la condivisione delle cartelle da montare tramite SMB / CIFS o FTP. In alternativa, guarda WebDAV e sono sicuro che puoi trovare un'implementazione IIS.
Dave C

2
@goldilocks qualcuno là fuori l'ha reso uno standard ben oltre 10 anni fa.
Giordania,

Vivere e imparare. :)
Riccioli d'oro

1
@DaveC Beh, in genere la navigazione nella directory non supporta il caricamento, tuttavia non ho menzionato che volevo l'accesso in sola lettura. Sebbene HTTP sia autonomamente supporta il caricamento con il metodo PUT.
jwbensley,

Risposte:


8

Puoi farlo usando WebDAV . Questa è un'estensione HTTP supportata dalla maggior parte dei server Web, inclusi IIS e Apache. WebDAV può essere montato su Linux tramite il davfs2modulo FUSE.


1
davfs2... o fusedavo avfso gvfs(Gnome / Nautilus) almeno.
Stéphane Chazelas,

5

Il problema con HTTP semplice è che è solo per recuperare il contenuto. Non esiste un concetto di elenco di cartelle o file.

Alcuni server Web consentono di esplorare le strutture di directory generando belle pagine HTML con collegamenti a file per le directory. E almeno cose come quelle lftpsono in grado di analizzare alcuni dei formati comuni in cui vengono generati quegli indici e darti l'impressione che si tratti di un protocollo di trasferimento file, ma non lo è davvero e non conosco alcun file system che possa analizza gli indici in questo modo lftp.

DAV è un'estensione che fa proprio questo ed è già coperta dalla risposta di Jordan.

Ma nota che se non hai bisogno di elencare le directory, avfsalmeno puoi permetterti di accedere alle pagine web sul filesystem.

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

Ora nota anche che puoi installare sshd(tramite cygwin) o FTP o Apache con DAV anche su una macchina Windows, quindi dovresti essere in grado di fare le stesse cose che fai su macchine Unix.


la parte del percorso di un URL HTTP non sarebbe considerata corrispondente a una struttura di directory nella radice? inoltre, molti server Web offrono un elenco di file se si richiede un URL che termina con una directory, non un file. e quindi entrambi questi due concetti potrebbero essere tradotti in questo modello di montaggio di un server HTTP come file system. ora, per quanto riguarda la pubblicazione di modifiche a tale mount, non ne sono sicuro, ma forse alcuni server web potrebbero essere configurati per farlo in modo simile a FTP
anfibio

@amphibient, sì, quello che chiami a file listingè quello che chiamo a generated HTML page with links to file. Deve ancora essere analizzato e non esiste uno standard sul formato di quelle pagine. Solo su Apache ci sono diversi moduli che generano quegli indici che possono essere regolati in molti modi diversi. Quindi non esiste una soluzione infallibile. Come ho detto, vedi lftpche cerca di analizzare molte di quelle pagine di elenco .
Stéphane Chazelas,

1

il problema principale già trattato sopra è: elenco directory / albero.

Sebbene la tua domanda sia piuttosto vecchia e potresti aver fatto diversamente, di recente ho scritto un filesystem di miccia che fa esattamente quello che ti serve, a condizione che tu scriva un piccolo script per dargli "l'albero" degli URL.

È lì: https://gitlab.com/BylonAkila/astreamfs

Hai uno script di esempio per il provider 1fichier, che puoi adattare al tuo server personale. Quello che fa lo script è solo preparare tutti gli argomenti per gli astreamf, in modo che il mount mostrerà tutti i tuoi file e cartelle nel posto giusto. Lo fa con la (in) famosa tecnica di "web scraping", ovvero leggere pagine HTML ed estrarre parti rilevanti da ciò.

Ci sono ancora due principali conserve, ovviamente, rispetto ai supporti regolari come NFS o SSHFS:

  • Il server http deve gestire "intervalli" (la maggior parte dei server può farlo)
  • È di sola lettura!
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.