FileBox 是一个基于 HTTP 的简单文件共享服务,支持匿名的文件上传与下载、文件有效期限管理等。它实现为 HevSCGIServer 的一个 Handler,通过 SCGI 协议与 Web Server 交互。
安装部署
1. Web Server (Nginx)
Nginx 自身的安装部署就不多说了,主要说一下与 HevSCGIServerFilebox 相关的配置文件部分:
server {
...
location /scgi {
client_max_body_size 1024m; # 限制每组最大上传大小
scgi_pass 127.0.0.1:9000; # HevSCGIServer 侦听地址端口
#scgi_pass unix:/opt/extra/hev-scgi-server/run/conn.sock; # 安全配置建议使用 Unix Socket
include scgi_params;
}
...
}
2. HevSCGIServer Core
a. 创建目录结构
mkdir -p /opt/extra/hev-scgi-server/{bin,conf,lib/modules,run}
mkdir -p /var/lib/hev-scgi-server/filebox/{pool,meta,temp}
b. 下载、安装 hev-scgi-server-library
git clone git://gitcafe.com/heiher/hev-scgi-server-library.git
cd hev-scgi-server-library
make
cp bin/libhev-scgi-server.so /opt/extra/hev-scgi-server/lib/
c. 下载、安装 hev-scgi-server
git clone git://gitcafe.com/heiher/hev-scgi-server.git
cd hev-scgi-server
make
cp bin/hev-scgi-server /opt/extra/hev-scgi-server/bin/
3. FileBox
git clone git://gitcafe.com/heiher/hev-scgi-handler-filebox.git
cd hev-scgi-handler-filebox
make
cp bin/libhev-scgi-handler-filebox.so /opt/extra/hev-scgi-server/lib/modules/
cp -r ui/* /srv/http/ # 复制到 Web 根目录
4. 配置文件
/opt/extra/hev-scgi-server/conf/main.conf
[Server]
Address=127.0.0.1:9000
ModuleDirPath=/opt/extra/hev-scgi-server/lib/modules
/opt/extra/hev-scgi-server/conf/modules.conf
[Module0]
Alias=HevSCGIHandlerFilebox
Pattern=^/scgi/fb((/|\\?)(.*))?$
FileName=libhev-scgi-handler-filebox.so
BaseURI=/scgi/fb/
CleanInterval=600
FilePoolPath=/var/lib/hev-scgi-server/filebox/pool
FileMetaPath=/var/lib/hev-scgi-server/filebox/meta
FileTempPath=/var/lib/hev-scgi-server/filebox/temp
Tips: 命令行上传
curl -i -F [email protected]文件名称 -F one-off=true http://127.0.0.1/scgi/fb/upload # one-off=true 即“下后即删”
Over!