3

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

 2 years ago
source link: https://blog.51cto.com/domi/5563413
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

原创

domi+1 2022-08-10 13:02:01 博主文章分类:数值计算 ©著作权

文章标签 根目录 访问权限 html 文章分类 其它 人工智能 yyds干货盘点 阅读数269

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.

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

参数说明:

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"

我部署是在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"
分享一个办公环境文件共享服务器软件CuteHttpFileServer_根目录
分享一个办公环境文件共享服务器软件CuteHttpFileServer_访问权限_02

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK