Cute Http File Server文件共享系统部署

Cute Http File Server文件共享系统部署

注:本人使用的是docblueCuteHttpFileServer/chfs,本文章部署使用版本的是2.0,版本3.1的部署流程一样,只有配置文件内容存在差异,详情见官网

一、部署前准备工作

1、查看Linux操作系统内核信息

uname -a

在这里插入图片描述

2、根据操作系统内核信息下载相应的压缩包

官方下载

在这里插入图片描述

3、连接Linux,创建chfs存放软件环境目录

mkdir -p /home/chfsService

4、将下载完成的压缩包进行解压缩并上传文件至chfsService文件目录下

5、创建chfsfile文件目录用来存放文件并设置权限

mkdir -p /home/chfsService/chfsfile
chmod -R 777 chfsfile

6、创建logs文件目录用来存放服务日志

mkdir -p /home/chfsService/logs

二、chfs服务部署

1、设置共享文件服务配置

vim ./chfs.ini
# 监听端口为5252
port=5252
# 文件服务共享目录
path=/home/chfsService/chfsfile
# 日志存放目录
log=/home/chfsService/logs
# 创建一个用户,密码为password,权限为读、写、删除
rule=username:password:RWD
# 默认用户没有权限
rule=::

补:官方配置规则

在这里插入图片描述

配置文件模板:

#---------------------------------------
# 请注意:
#     1,如果不存在键或对应值为空,则不影响对应的配置
#     2,配置项的值,语法如同其对应的命令行参数
#---------------------------------------


# 监听端口
port=


# 共享根目录,通过字符'|'进行分割
# 注意:
#     1,带空格的目录须用引号包住,如 path="c:\a uply name\folder"
#     2,可配置多个path,分别对应不同的目录
path=


# IP地址过滤
allow=


#----------------- 账户控制规则 -------------------
# 注意:该键值可以同时存在多个,你可以将每个用户的访问规则写成一个rule,这样比较清晰,如:
#     rule=::
#     rule=root:123456:RW
#     rule=readonlyuser:123456:R
rule=


# 用户操作日志存放目录,默认为空
# 如果赋值为空,表示禁用日志
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=



# 设置会话的生命周期,单位:分钟,默认为30分钟
session.timeout=

例:

在这里插入图片描述

2、配置后台运行

nohup /home/chfsService/chfs --file=/home/chfsService/chfs.ini &

3、结束共享文件服务运行

ps -aux | grep chfs
kill -9 服务进程

三、设置文件共享服务开机自启动

1、编写shell脚本文件,在/etc/rc.d/init.d目录下创建chfs_auto.sh文件

cd /etc/rc.d/init.d
vim ./chfs_auto.sh

2、在chfs_auto.sh文件中编辑运行命令

nohup /home/chfsService/chfs --file=/home/chfsService/chfs.ini &

3、给shell脚本赋予执行权限

# chmod +x 命令表示将该文件设置为可执行的文件
chmod +x /etc/rc.d/init.d/chfs_auto.sh

4、为shell脚本文件赋予开机自启动权限

vim /etc/rc.d/rc.local

5、添加shell自启动脚本所在的目录

/etc/rc.d/init.d/chfs_auto.sh

在这里插入图片描述

6、赋予rc.local文件执行权限

chmod +x /etc/rc.d/rc.local

7、重启Linux系统

reboot now

8、使用ps命令查看chfs启动状态

ps -aux | grep chfs

9、访问地址及相应端口

在这里插入图片描述

四、Docker部署Cute Http File Server服务

1、创建chfs文件夹,添加相关文件

在这里插入图片描述
注:版本2.0和版本3.1中chfs不一样,请从官网下载相应版本命令行程序

chfs版本2.0配置文件chfs.ini内容:

# 容器内监听端口为8080
port=8080
# 文件服务共享目录
path=/home/chfsService/chfsfile
# 日志存放目录
log=/home/chfsService/logs
# 创建一个用户,密码为password,权限为读、写、删除
rule=username:password:RWD
# 访客没有任何权限
rule=::

补充:chfs版本3.1配置文件chfs.ini内容:

# 容器内监听端口为8080
port=8080
# 文件服务共享目录
path=/home/chfsService/chfsfile
# 日志存放目录
log=/home/chfsService/logs

# 网页标题
html.title=文件仓库
# 启用图片预览
image.preview=true
# 文件/目录删除模式:
#    1: 安全删除:移动到系统回收站 [不是所有操作系统都支持,建议使用前进行测试。默认模式]
#    2: 安全删除:移动到chfs的专属回收站: ~/.chfs_trashbin, 程序会删除存储超过1个月的文件
#    3: 真正删除
file.remove=2
# 设置会话的生命周期,单位:分钟,默认为30分钟
session.timeout=60

#----------------- ------------------------
# 注意: 账户配置区域放置到配置文件的后面
#------------------------------------------

#----------------- 账户及控制规则 -------------------
#     [xxx] xxx即为账户名, 访客的用户名为guest
#     password 账户密码
#     rule.default 账户对所有的目录和文件的访问权限,但可以针对任意子目录进行重新设定访问权限,以覆盖默认的权限
#     rule.none 表示对哪些子目录设置为不可访问的权限,多个目录使用字符'|'分割,也可以分为多行。注意:该子目录本身也不可访问!
#     rule.r 表示对哪些子目录设置为读权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#     rule.w 表示对哪些子目录设置为写权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#     rule.d 表示对哪些子目录设置为最高访问权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#
#   示例:
#        [foo]
#        password=bar
#        rule.default=r
#        rule.none=d:\公司制度|d:\财务票据
#        rule.r=d:\施工项目\2021年
#        rule.r=d:\施工项目\2022年
#        rule.d=d:\个人目录\foo
#
#    该账户名为foo,密码为bar,默认访问权限是读权限,但账户没有“d:\公司制度”和“d:\财务票据”的访问权限,且
#    对“d:\施工项目\2021年”和“d:\施工项目\2021年”只有读权限,对“d:\个人目录\foo”有最高访问权限。
#
[username123]
password=password123
rule.default=rwd

# 访客没有任何权限
[guest]
rule.none=/

2、编写Dockerfile

# 基础镜像
FROM centos:7.9.2009

# 创建目录
RUN mkdir -p /home/chfsService/server
RUN mkdir -p /home/chfsService/chfsfile
RUN mkdir -p /home/chfsService/config
RUN mkdir -p /home/chfsService/logs

# 复制 宿主机 文件到 容器内部 指定路径
ADD ./config/chfs.ini /home/chfsService/config/chfs.ini
ADD ./server/chfs /home/chfsService/server/chfs

# 赋予权限
RUN chmod +x /home/chfsService/server/chfs

# 指定进入docker容器内默认路径
WORKDIR /home/chfsService

EXPOSE 8080

# 启动文件系统服务
CMD ["/bin/sh", "-c", "/home/chfsService/server/chfs --file=/home/chfsService/config/chfs.ini"]

3、编写docker-compose.yml进行docker部署

version: '3.3'

services:
  chfs:
    container_name: chfs
    build:
      context: ./chfs
      dockerfile: Dockerfile
    ports:
      - "5252:8080"
    privileged: true
    volumes:
      - /home/data/chfsService/chfsfile:/home/chfsService/chfsfile
      - /home/data/chfsService/config:/home/chfsService/config
      - /home/data/chfsService/logs:/home/chfsService/logs
    restart: always

注:在运行docker-compose前,宿主机需要创建相关文件夹及添加相关文件,尤其是chfschfs.ini,因为在运行时文件挂载会将宿主机中的挂载路径文件覆盖镜像相关路径的文件,导致运行时chfs找不到相关服务文件及配置文件。

4、在Termius的命令行中输入docker-compose up -d进行创建容器并运行。

五、版本2.0和版本3.1的最大区别

1、在版本3.1中新增安全删除文件,简称回收站,可以在配置文件中配置删除模式。
在这里插入图片描述
2、在版本3.1中重新设计了目录访问权限,设置默认访问权限后,可对任意子目录设置独立的访问权限。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UMLove4520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值