zl程序教程

您现在的位置是:首页 >  Java

当前栏目

分享一个办公环境文件共享服务器软件CuteHttpFileServer

2023-02-18 16:30:40 时间

CuteHttpFileServer是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问,可直接双击运行 (默认的共享目录是 chfs 所在的路径),或在控制台/命令行中运行。

Cute Http File Server (缩写为 chfs),是一个免费小巧的「绿色单文件」 HTTP 文件共享服务器工具,它可以跨平台支持 Windows 和 Linux,只需启动即可自动快速帮你生成一个支持电脑和手机版的“文件下载网站”(网盘),其他设备只需通过 IP 地址即可下载和上传文件。

无论是电脑、手机、平板甚至是游戏机等设备,只要有浏览器,都可以直接访问你这个网站,从里面下载共享的文件(文档/照片/音频/视频/电影等等),或者上传文件,而完全无需安装任何客户端 APP 应用。

程序可直接双击运行,或在控制台/命令行中运行。可通过命令行参数进行相关配置,如使用'chfs --help'来查看帮助:

usage: chfs.exe []

Flags:
  --help              Show context-sensitive help (also try --help-long and
                      --help-man).
  --path=DIRECTORIES  Directories where store shared files, separated by '|'.
  --port=PORT         HTTP listening port(Default is 80).
  --allow=LIST        Allowed IPv4 addresses(Allow any address by default).
                      
                      White list mode: "listitem1[,listitem2,...]" e.g.
                      "192.168.1.2-192.168.1.10,192.169.1.222" allows this 10
                      addresses.
                      
                      Black list mode: "not(listitem1[,listitem2,...])" e.g.
                      "not(192.168.1.2-192.168.1.10,192.169.1.222)" bans this 10
                      addresses!
  --rule=LIST         Access rules(anybody can access any thing by default).
                      
                      List defines like:"USER:PWD:MASK[:DIR:MASK...][|...]":
                      
                        1,USER and PWD is account name and password
                        2,MASK:''=NO present,'r'=read,'w'=write,'d'=delete
                        3,r=view+download,w=r+upload+create+rename,d=w+delete
                        4,DIR is directory name, allows wildcard('*' & '?')
                        5,The 3rd field is access mask of shared root directory
                        6,The optional fields is pairs of sub-directory and mask
                        7,The optional sub-directory's mask overwrite parent's
                        8,You should avoid '|' ':' and white space(exclude DIR)
                      
                      For instance: "::|root:123456:rw" bans guest, and defines
                      a account 'root' can do anything
  --log=DIRECTORY     Log directory. Empty value will disable log.
  --file=FILE         A configuration file which overwrites & enhence the
                      settings.
  --version           Show application version.

参数说明:

help:  显示帮助信息
path:  你要共享的目录,默认为程序运行目录。如果需要共享多个目录,则用“|”符号隔开。注意:如果路径带有空格,则需要将整个路径用引号包住。
port:  程序使用的端口号,默认为80
allow:  IP地址过滤,可使用白名单模式或黑名单模式
rule:  账户及访问权限,允许一个账户多点登陆,默认情况下匿名用户具有读写权限,其语法为:

RULEITEM1[|RULEITEM2|RULEITEM3...]

每个RULEITEM代表一个账户信息及其访问权限,多个RULEITEM则用'|'进行分割,RULEITEM的语法为:

USER:PWD:MASK[:DIR:MASK...]

每个项由“:”来分隔,前三个项是必须的,分别对应:账户名、账户密码、共享目录根目录的访问权限。后面的可选的项,必须成对出现,用来设定根目录下面的子级目录的访问权限。一些规定:

* 对于匿名用户,前两个项都为空
* 访问权限分为四种:""(不可访问),"R"(只读),"W"(读写),"D"(写+删除)。读权限指的是下载,写权限指上传、新建等操作,删除权限是在写权限的基础上加上删除权限。
* 各项的值应避免出现空白键,':'及'|'(目录名除外)
log:  用户操作日志存放目录,默认是程序所在目录下的logs中。禁用日志功能只需将其赋值为空即可。
file:  配置文件,该文件可配置上述配置项,语法相同,如果配置有效则覆盖对应配置项。另外,一些功能需要通过配置文件进行配置,比如页面自定义和SSL证书设置。下载配置文件模板
version:  显示程序版本号

使用方法

//都使用默认参数,共享目录为程序运行目录,监听端口号为80
chfs

//共享目录为D盘,监听端口号为8080
chfs --path="d:/" --port=8080

//共享目录为"d:\\projects"和"e:\\nsis",监听端口号为80
chfs --path="d:\\projects|e:\\nsis"

//白名单模式,允许192.168.1.2-192.168.1.100以及192.168.1.200进行访问
chfs --allow="192.168.1.2-192.168.1.100,192.168.1.200"

//黑名单模式,禁止192.168.1.2-192.168.1.100以及192.168.1.200进行访问
chfs --allow="not(192.168.1.2-192.168.1.100,192.168.1.200)"

//匿名用户具有只读权限(默认情况下匿名用户具有读写权限)
//账户ceshizu,密码为ceshizu123,对根目录的权限为只读,但对test目录具有读写权限
//账户yanfazu,密码为yanfazu123,对根目录的权限为只读,但对yanfa目录具有读写权限
chfs --rule="::r|ceshizu:ceshizu123:r:test:rw|yanfazu:yanfazu123:r:yanfa:rw"

//匿名用户什么权限都没有(默认情况下匿名用户具有读写权限)
//账户admin,密码为admin123,具有读写权限
//账户zhangsan,密码为zhangsan123,对根目录的权限为不可读写,但对zhangsanfiles目录具有读写权限
chfs --rule="::|admin:admin123:rw|zhangsan:zhangsan123::zhangsanfiles:rw"

//通过配置文件进行配置,该文件可以不存在,待以后需要更改配置时使用
chfs --file="d:\chfs\chfs.ini"

软件官网链接:http://iscute.cn/chfs

我部署是在linux环境部署,首先生成一个config文件,其中的参数配置见注释。

# 监听端口,空为80,建议设置为非占用非常用端口,webdav也是用这个端口
port=5000

# 共享根目录,通过字符'|'进行分割,下面的例子共享了两个目录,可以根据自己需求更改
path="/home/domi/share"

# 白名单模式,允许192.168.1.2-192.168.1.100以及192.168.1.200进行访问,如果要禁止,在ip地址加not和括号:chfs --allow="not(192.168.1.2-192.168.1.100,192.168.1.200)"
# chfs --allow="192.168.1.2-192.168.1.100,192.168.1.200"

# 权限控制:R读,W写,D删,::表示匿名,第一个:号前面表示用户名,后面表示密码,也能针对单独文件设置,有需求自己看官网
rule=::
rule=root:123456:RWD
rule=readonlyuser:123456:R

# 用户操作日志存放目录,默认为空
# 如果赋值为空,表示禁用日志
log=

# 网页标题
html.title=

# 网页顶部的公告板。可以是文字,也可以是HTML标签,此时,需要适用一对``(反单引号,通过键盘左上角的ESC键下面的那个键输出)来包住所有HTML标签。几个例子:
#     1,html.notice=内部资料,请勿传播
#     2,html.notice=`<img src="https://mat1.gtimg.com/pingjs/ext2020/qqindex2018/dist/img/qq_logo_2x.png" width="100%"/>`
#     3,html.notice=`<div style="background:black;color:white"><p>目录说明:</p><ul>一期工程:一期工程资料目录</ul><ul>二期工程:二期工程资料目录</ul></div>`
html.notice=


# 是否启用图片预览(网页中显示图片文件的缩略图),true表示开启,false为关闭。默认开启
image.preview=


# 下载目录策略。disable:禁用; leaf:仅限叶子目录的下载; enable或其他值:不进行限制。
# 默认值为 enable
folder.download=


#-------------- 设置生效后启用HTTPS,注意监听端口设置为443-------------
# 指定certificate文件
ssl.cert=
# 指定private key文件
ssl.key=

然后启动chfs,最后在网页打开就可以进行文件上传、下载,网页的登录账号密码配置在config。

./chfs --file="config"