lala.im:miniserve:一个实用的列目录工具

運維技術·軟件/源碼·lala.im · 2020-09-30 · 116 人浏览

原文地址:https://lala.im/7414.html,請支持原作者!該處僅作轉載。

我在buyvm有一台archlinux的小鸡,平时专门用来下载一些迅雷下不动的资源拖回本地。
之前就随便搭了个nginx用来列目录方便idm拖回本地,只到发现了这个miniserve,我就用它替代掉了nginx。
就和它的名字一样,这个小工具非常轻量,支持的功能还很多:身份验证/文件上传/打包下载/二维码扫描等等。
我之前就是偷懒用的nginx列目录,因为配置起来很简单:

server {
   listen 80;
   server_name example.com;
   charset utf-8;
   root /storage;
   autoindex on;
}

但是后面用了一段时间就发现经常因为目录权限不对导致访问不到文件的问题。总不可能把nginx放到root下面跑吧。。所以也就一直这样凑合着用。。
当然列目录的工具还有很多,最懒的方法是用python自带的http服务器:

python3 -m http.server

但是这个东西性能不咋地,idm多线程100M带宽都跑不满,也只能偶尔应下急。
还有一些其他的列目录程序,比如h5ai,这东西是php写的,搭建起来就不是很方便了。
哎,不多废话了,总之我就是来安利miniserve的,这里我使用supervisor来守护miniserve进程:

pacman -S supervisor wget 
systemctl start supervisord
systemctl enable supervisord

由于我这个是archlinux的系统,所以supervisor的配置和其他系统有点差异,如果你会配置的话,可以用systemd来代替supervisor。
下载miniserve二进制文件:

mkdir -p /opt/miniserve && cd /opt/miniserve
wget https://github.com/svenstaro/miniserve/releases/download/v0.9.0/miniserve-v0.9.0-linux-x86_64 -O miniserve

新建一个supervisor的配置文件:

nano /etc/supervisor.d/miniserve.ini

写入如下配置:

[program:miniserve]
priority=1
directory=/opt/miniserve
command=/opt/miniserve/miniserve -r -z -u -q -p 8080 -a imlala:password /storage
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/miniserve.log

后面的/storage是你要列的目录路径,也可以是单个文件的路径,miniserve一些可配置的参数:

-r # 开启tar打包
-z # 开启zip打包
-u # 允许上传文件
-q # 二维码支持
-p # 指定端口号
-a # 身份验证

还有一些参数可以参考官方的介绍:
https://github.com/svenstaro/miniserve
更新supervisor配置即可完成配置:

supervisorctl update

预览:

範例

運維技術 軟件/源碼 網盤 lala.im
Theme Jasmine by Kent Liao