我有一台机器,希望在该机器上安装多个远程服务器以集中访问它们。对于基于远程Linux的系统,我使用的是SSHFS,效果很好。但是对于Windows系统或没有SSH的系统,它们都安装了某种形式的HTTP服务器来共享文件(因此它们都启用了目录浏览)。
是否可以将HTTP服务器作为SSHFS之类的本地文件系统挂载,以便可以将所有这些远程服务器本地挂载并以统一的方式显示?
我有一台机器,希望在该机器上安装多个远程服务器以集中访问它们。对于基于远程Linux的系统,我使用的是SSHFS,效果很好。但是对于Windows系统或没有SSH的系统,它们都安装了某种形式的HTTP服务器来共享文件(因此它们都启用了目录浏览)。
是否可以将HTTP服务器作为SSHFS之类的本地文件系统挂载,以便可以将所有这些远程服务器本地挂载并以统一的方式显示?
Answers:
您可以使用WebDAV进行此操作。这是大多数Web服务器(包括IIS和Apache)支持的HTTP扩展。WebDAV可以通过davfs2
FUSE模块安装在linux中。
davfs2
...或fusedav
或avfs
或gvfs
(Gnome / Nautilus)至少。
普通HTTP的问题在于它仅用于检索内容。没有文件夹或文件列表的概念。
某些Web服务器允许您通过生成带有指向目录文件链接的漂亮HTML页面来浏览目录结构。至少,诸如此类lftp
的东西能够解析生成这些索引的某些常见格式,并给您留下的印象是它是一种文件传输协议,但实际上并非如此,而且我不知道任何融合文件系统可以解析索引的方式lftp
。
DAV是一个扩展,仅此而已,而jordanm的答案已经涵盖了它。
但是请注意,如果您不需要列出目录,avfs
至少可以让您通过文件系统访问网页。
$ mkdir AVFS
$ avfsd AVFS
$ grep -w Reputation 'AVFS/#http:unix.stackexchange.com|users|12583|javano'
<span class="count">731</span> Reputation
现在还请注意,您也可以sshd
在Windows机器上(通过cygwin)安装FTP或Apache或带有DAV的Apache,因此您应该能够执行与Unix机器相同的操作。
file listing
是我所说的a generated HTML page with links to file
。它仍然需要解析,并且这些页面的格式没有标准。仅在Apache上,就有几个模块可以生成可以通过许多不同方式调整的索引。因此,没有万无一失的解决方案。正如我所说的lftp
那样,它试图解析许多列表页面。
上面已经介绍的主要问题是:目录/树列表。
尽管您的问题已经很老了,您可能会做其他事情,但是我最近编写了一个融合文件系统,该文件系统可以完全满足您的需求,只要您编写一个小脚本即可为它提供URL的“树”。
它在那里:https : //gitlab.com/BylonAkila/astreamfs
您有一个提供程序1fichier的示例脚本,您可以将其改编到自己的个人服务器。该脚本所做的只是为astreamfs准备所有参数,以便挂载将在正确的位置显示所有文件和文件夹。它使用(著名的)“网络抓取”技术来完成此工作,也就是读取HTML页面并从中提取相关部分。
与常规挂载(例如NFS或SSHFS)相比,显然还有两个主要限制: