用 FUSE 挂载 HTTP 文件目录
Apache、nginx 等服务器软件都有生成文件目录的功能。这类目录通常只考虑到人类的可读性,给机读带来很大困难。之前有解析目录列表的一些实现 [1] [2],但不能覆盖大多数情况。为了之前挖的坑(实现自动获取软件更新信息) [3],我实现了一个能解析大部分文件目录的程序「htmllisting-parser」。
其能解析用 <pre>、<table> 和 <ul> 的常见文件目录,包括 Apache、nginx、lighttpd、darkhttpd 和 Python http.server 等服务器的默认样式,生成文件名、修改时间、大小、描述的列表。解析的基本思想就是模式匹配,对 <pre> 就先找链接,再在每一栏找修改时间和文件大小;<table> 先找表头;<ul> 列举链接就可以了。程序写的有点面条,一堆黑科技,有空再整理和模块化。
以这个解析器为基础,就能写出较为高效的 FUSE 文件系统 …