WebDav协议相关软件@简单配置局域网内的http和WebDav服务器和传输系统
文章目录
- 相关软件
- windows自带
- 第三方软件
- chfs(CuteHttpFileServer)
- 下载软件
- GUI方案
- 补充
- 命令行方案
- 命令行程序定位
- 简单创建服务站点
- 使用配置文件配置细节
- 使用软连接或符号链接等手段将向共享站点的根目录添加文件
- 开机自启
- 服务包装
- nssm包装
- 使用powershell包装
- 服务启动
- chfs服务@检查服务运行情况
- 效果
- 附:模板配置
- FAQ
- 浏览器无法打开
- 关于权限问题(访问控制)
- 日志
- 其他
相关软件
windows自带
- IIS webdav
- windows自带的服务,启用相关功能后还要进行一系列的配置
- 而且在WebDav客户端上传到站点的文件大小存在限制问题
- 总体体验并不好,因此推荐第三方专业软件,灵活而且易于配置
第三方软件
- CuteHttpFileServer | iscute.cn👺
- 提供了windos端的命令行程序和图形界面程序,轻量而且易于配置
- GitHub - hacdias/webdav: Simple Go WebDAV server.
- 专门设计支持WebDav的命令行程序(可能停更了)
- Caddy - The Ultimate Server with Automatic HTTPS (caddyserver.com)
- candy+webdav:Module http.handlers.webdav - Caddy Documentation (caddyserver.com)
chfs(CuteHttpFileServer)
- 本文介绍chfs的用法,该软件比较简单易用,轻量灵活(免费)
- 几乎不用配置防火墙和共享站点的根目录的权限控制
- 同时给出http和webdav的链接,用浏览器就可以进行webdav传输,享受webDav的优点
- 浏览器所有设备几乎都有,因此可以不下在专门的客户端
下载软件
- 根据上述提供的官网,下载可执行文件
- 如果是计算机老手,可以考虑用命令行,更加轻量
- 如果图方便或者是电脑新手,用GUI也是极好的(及其简单,可以将软件语言切换为中文,可以快速配置)
- 复杂配置也建议用GUI比较方便
- 官网同时就是使用文档和使用说明书
GUI方案
-

支持语言切换和配置导出 -
软件启动:配置完成后,点击左上角的按钮切换服务启动或关闭状态
-
右上角可以切换语言和配置导出,观察操作日志
-
至此就可以实现方便的局域网内传输
补充
命令行方案
- 这里假设用户有命令行使用经验
- windows比如cmd或者powershell都可以
- 这里我用powershell
命令行程序定位
-
找到下载好的命令行可执行文件,比如D:\exes\chfs-windows-x64-3.1\chfs-windows-x64-3.1.exe
-
复制其所在目录,在命令行中定位到可执行文件
-
PS D:\exes\chfs-windows-x64-3.1> rvpa .\chfs-windows-x64-3.1.exePath ---- D:\exes\chfs-windows-x64-3.1\chfs-windows-x64-3.1.exePS D:\exes\chfs-windows-x64-3.1> sal chfs (rvpa .\chfs-windows-x64-3.1.exe) -
这里我为文件chfs-windows-x64-3.1.exe起了个别名,方便后面引用该程序
sal chfs (rvpa .\chfs-windows-x64-3.1.exe)- 也可以直接修改可执行文件的名字(或者配置别名到shell的配置文件中,今后在命令行任意位置都可以访问到该程序)
-
检查文档:
chfs --help -
PS D:\exes\chfs-windows-x64-3.1> chfs --help Usage of D:\exes\chfs-windows-x64-3.1\chfs-windows-x64-3.1.exe:-file stringConfiguration file.-path stringShared directories, separated by '|'. (default ".")-port uintHTTP listening port. (default 80)-versionPrint version.
-
简单创建服务站点
-
例如:
chfs -path D:\1WebDav\ -port 8084- 该命令指出,将目录
D:\1WebDav作为共享站点根目录,端口设置为8084(能用就行,不能用时(和其他服务冲突时),稍微改改数值)
- 该命令指出,将目录
-
PS D:\exes\chfs-windows-x64-3.1> chfs -path D:\1WebDav\ -port 8084**************************************************CUTE HTTP FILE SERVER 3.1Homepage: http://chfs.iscute.cnAuthor: docblue@163.com **************************************************Shared path: D:\1WEBDAV Listening port: 8084Websites: http://192.168.1.46:8084Webdav URLs: http://192.168.1.46:8084/webdav
使用配置文件配置细节
-
有时WebDav客户端(软件)需要使用用户名密码登录才可访问站点,这时我们要用配置文件配置更多细节
-
考虑到可维护性,建议从官网下载模板,然后根据模板内的注释说明配置需要的条目即可
- iscute.cn/asset/chfs.ini
- 您可以打开这个模板链接,复制全部内容,然后在找得到的地方(推荐在chfs所在目录下创建文件
chfs.ini) - 将模板内容粘贴到该文件,根据需要进行配置,样例放在末尾
-
根据配置文件,启动服务
chfs -file chfs.init(文件名替换为你配置文件目录,如果在当前目录,则输入文件名即可)
-
PS D:\exes\chfs-windows-x64-3.1> chfs -file .\chfs.ini**************************************************CUTE HTTP FILE SERVER 3.1Homepage: http://chfs.iscute.cnAuthor: docblue@163.com **************************************************Shared path: D:\MINGW64 Listening port: 8084Config file: .\chfs.iniWebsites: http://192.168.1.46:8084Webdav URLs: http://192.168.1.46:8084/webdav2024-01-09 10:30:32 - 192.168.1.46 - user(tester) download '/33.txt' 2024-01-09 10:30:41 - 192.168.1.46 - user(tester) download '/33.txt' 2024-01-09 10:30:50 - 192.168.1.46 - user(tester) update text file:'33.txt'
使用软连接或符号链接等手段将向共享站点的根目录添加文件
-
如果将文件复制到共享站点根目录,可能会产生重复文件,造成资源浪费
-
可以考虑用软连接等方法尽可能减少对其他文件的影响
- powershell和bash在各自平台上都可以创建类似的符号
-
另外chfs支持添加不同目录到分享站点
-

将两个(或更多)独立文件夹添加到分享站点 -
这个操作对http有效,但是webdav仍然只显示一个首个目录
-
开机自启
- 如果您只是偶尔使用(局域网文件传输),那么不建议开机自启
- 如果经常使用,则建议开启开机自启
- GUI软件勾选开机自启以及随软件启动运行
- 如果是命令行版本,可以用nssm包装成服务,这样开机就会自动运行
服务包装
nssm包装
-
命令行版可以用nssm包装成服务运行(支持老的windows系统)
-
将nssm配置到环境变量,或者配置别名
-
执行
nssm install chfs_service,表示要安装(包装)一个名为chfs_service的可执行程序 -
名字可以自行指定,关键是路径和参数(启动方式默认即可(自动(Automatic)))
-
填写完后点击安装
-

输入参数和命令行执行时添加的参数一样(可以是配置文件,配置参数也可以是直接写明在参数字符串中)
使用powershell包装
- New-Service (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
- 参考文档给出了操作方法
- 这里我们没有成功启动
服务启动
- 重启计算机检查效果(会自动启动服务)
- 或者直接打开
service.msc,找到刚才创建的服务,直接在面板中启动 - 或者管理员权限,命令行中用nssm启动:
nssm start chfs_service
chfs服务@检查服务运行情况
-

重启后相关服务会自行启动 -
使用powershell检查
-
PS C:\Users\cxxu\Desktop> Get-CimInstance -ClassName Win32_Service -Filter "Name='chfs_service'"ProcessId Name StartMode State Status ExitCode --------- ---- --------- ----- ------ -------- 0 chfs_service Auto Stopped OK 0 -
或者
PS C:\Users\cxxu\Desktop> gsv chfs*Status Name DisplayName ------ ---- ----------- Running chfs_service chfs_servicePS C:\Users\cxxu\Desktop> gsv chfs_service |select *UserName : LocalSystem Description : DelayedAutoStart : False BinaryPathName : D:\exes\nssm\nssm.exe StartupType : Automatic Name : chfs_service RequiredServices : {} CanPauseAndContinue : False CanShutdown : True CanStop : True DisplayName : chfs_service DependentServices : {} MachineName : . ServiceName : chfs_service ServicesDependedOn : {} StartType : Automatic ServiceHandle : Status : Running ServiceType : Win32OwnProcess Site : Container :
-
效果
- 浏览器端支持上传下载删除搜索文件等操作,通常别人要发文件给你或者你要发文件给别人,都可以让对方打开浏览器输入你的ip和端口,进行基本的访问和传输操作
- 至于webDav链接需要配置一些东西,给自己使用为主,例如手机上安装cx file explorer,将计算机挂载到手机上
- 无论是哪种协议,都可以在线点播常见格式的视频,音频或则编辑文本
![]() | 可以修改文本文件或重命名 | |
![]() | 局域网内挂在webdav 如果是本机的WebDav协议,可以用localhost来代指具体的ip 如果要和局域网内的其他人共享,那么其他windows设备就不是用localhost,而是用服务器(本机)的ip了 | |
附:模板配置
-
#--------------------------------------- # 请注意: # 1,如果不存在键或对应值为空,则不影响对应的配置 # 2,配置项的值,语法如同其对应的命令行参数 #---------------------------------------# 监听端口 port=8084# 共享根目录,通过字符'|'进行分割 # 注意: # 1,带空格的目录须用引号包住,如 path="c:\a uply name\folder" # 2,可配置多个path,分别对应不同的目录 path=D:\share path=C:\Users\cxxu #path="D:\MinGW64"# IP地址过滤 allow=# 用户操作日志存放目录,默认为空 # 如果赋值为空,表示禁用日志 log=D:\exes\chfs_home\log# 网页标题 html.title=chfs创建的文件中心站点@由配置文件控制细节# 网页顶部的公告板。可以是文字,也可以是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=true# 下载目录策略。disable:禁用; leaf:仅限叶子目录的下载; enable或其他值:不进行限制。 # 默认值为 enable folder.download=#-------------- 设置生效后启用HTTPS,注意监听端口设置为443------------- # 指定certificate文件 ssl.cert= # 指定private key文件 ssl.key=# 设置会话的生命周期,单位:分钟,默认为30分钟 session.timeout=# 文件/目录删除模式: # 1: 安全删除:移动到系统回收站 [不是所有操作系统都支持,建议使用前进行测试。默认模式] # 2: 安全删除:移动到chfs的专属回收站: ~/.chfs_trashbin, 程序会删除存储超过1个月的文件 # 3: 真正删除 file.remove=1#----------------- ------------------------ # 注意: 账户配置区域放置到配置文件的后面 #------------------------------------------#----------------- 账户及控制规则 ------------------- # [xxx] xxx即为账户名, 访客的用户名为guest # password 账户密码 # rule.default 账户对所有的目录和文件的访问权限,但可以针对任意子目录进行重新设定访问权限,以覆盖默认的权限(设置成d,表示最高权限(读,写,删除)) # 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”有最高访问权限。 ##账户xxx,访客的用户名为guest [cxxu@dav] password=1 rule.default=d rule.none= rule.r= rule.w= rule.d=
FAQ
浏览器无法打开
-
首先检查端口号是否正确,默认80端口可以不用输入,否则要明确指出端口号
-
浏览器代理设置可能导致无法打开本地的http链接,例如proxy switchOmega,需要将本地ip(私有ip)过滤掉
- 插件默认过滤127.0.0.*
- 但是可能不会过滤192.168.*
-
或者用
localhost:port也可以访问,例如chfs提供的链接是:http://192.168.1.46:8084,则浏览器输入http://localhost:8084也行
关于权限问题(访问控制)
- 网页(http链接)打开的页面目前可以访问所有文件;而登录受限的用户后只能访问受配置文件约束的若干资源
- 这点有些不正常,但是不影响webdav的传输
日志
- 保存日志,需要指定日志存储目录,如果指定一个不存在的目录,日志文件将无法保存
- 所以如果要保存的路径需要检查存在性,不存在手动创建一下
其他
- 详情参考官网
相关文章:
WebDav协议相关软件@简单配置局域网内的http和WebDav服务器和传输系统
文章目录 相关软件windows自带第三方软件 chfs(CuteHttpFileServer)下载软件GUI方案 补充命令行方案命令行程序定位简单创建服务站点使用配置文件配置细节 使用软连接或符号链接等手段将向共享站点的根目录添加文件开机自启服务包装nssm包装使用powershell包装 服务启动chfs服务…...
自定义数据实现SA3D
SA3D:Segment Anything in 3D with NeRFs 实现了3D目标分割 原理是利用SAM(segment anything) 模型和Nerf分割渲染3D目标, SAM只能分块,是没有语义标签的,如何做到语义连续? SA3D中用了self-prompt, 根据前一帧的mask…...
设计模式基础概念:探索设计模式的魅力
设计模式是软件开发中的一种指导性概念,它提供了一套被广泛接受的解决方案,用于常见的设计问题。设计模式有助于提高软件的可重用性、可扩展性和可维护性,并促进团队之间的沟通。 以下是一些常见的设计模式: 创建型模式࿱…...
【Leetcode】2182. 构造限制重复的字符串
文章目录 题目思路代码 题目 2182. 构造限制重复的字符串 问题:给你一个字符串 s 和一个整数 repeatLimit ,用 s 中的字符构造一个新字符串 repeatLimitedString ,使任何字母 连续 出现的次数都不超过 repeatLimit 次。你不必使用 s 中的全…...
Kubernetes(K8S)云服务器实操TKE
一、 Kubernetes(K8S)简介 Kubernetes源于希腊语,意为舵手,因为首尾字母中间正好有8个字母,简称为K8S。Kubernetes是当今最流行的开源容器管理平台,是 Google 发起并维护的基于 Docker 的开源容器集群管理系统。它是大名鼎鼎的Google Borg的开源版本。 K8s构建在 Docker …...
设置弹窗随鼠标位置移动
1.这是要移动的弹窗,隐藏显示逻辑、样式、展示内容自己写,主要就是动态设置弹窗的style,floatLeft和floatTop都是Vue中的data双向绑定数据; <div id"box" v-show"hasMove" :style"{ left: floatLeft…...
Spring Boot实现数据加密脱敏:注解 + 反射 + AOP
文章目录 1. 引言2. 数据加密和脱敏的需求3. Spring Boot项目初始化4. 敏感数据加密注解设计5. 实现加密和脱敏的工具类6. 实体类和加密脱敏注解的使用7. 利用AOP实现加密和脱敏8. 完善AOP切面9. 测试10. 拓展功能与未来展望10.1 加密算法的选择10.2 动态注解配置 11. 总结 &am…...
jmeter和meterSphere如何使用第三方jar包
工具引用jar包语言都是beanshell 问题起因:metersphere 接口自动化实现过程中,如何实现字符串加密且加密方法依赖第三方库; 使用语言:beanshell脚本语言,java语言 使用工具:idea jmeter metersphere 1.首…...
API对象上千个,有啥关联性,kubectl-tree一键搞定
关注【云原生百宝箱】公众号,获取更多云原生消息 "kubectl-tree 是一款强大的 kubectl 插件,通过 ownerReferences 实现 Kubernetes 对象之间的所有权关系探索。相较于 kubectl lineage,它不仅更全面理解 API 对象的逻辑关系,…...
java自定义工具类在List快速查找相同字段值对象
根据对象某一字段名,获取字段值,将List转换为Map中包含list,Key为字段值,Value为相同字段值的对象list,快速定位具有相同字段值的对象,转换之后便于在Map中根据字段值快速查找相同字段值的对象 //List转Map…...
codeforces Hello 2024 - C - Grouping Increases --- 题解
目录 Grouping Increases 题目描述: 思路解析: 代码实现: Grouping Increases 题目描述: 给你一个大小为n的数组a,你可以把数组a划分为两个子序列s和t,a中元素,要么在子序列s中,…...
STM32H5培训(一)总览
文章目录 1. 前言2. STM32H5系列MCU的特点和新功能包括性能提升、新外设和安全功能等3. STM32H5系列型号之间的区别和关键资源对比4. 性能和功能亮点6. 开发生态参考: 1. 前言 本篇主要介绍STM32H5系列MCU的特点和新功能,包括全新的M33内核、250M主频处…...
亚马逊云科技 WAF 部署小指南(五):在客户端集成 Amazon WAF SDK 抵御 DDoS 攻击...
方案介绍 在 WAF 部署小指南(一)中,我们了解了 Amazon WAF 的原理,并通过创建 WEB ACL 和托管规则防护常见的攻击。也了解了通过创建自定义规则在 HTTP 请求到达应用之前判断是阻断还是允许该请求。在 Amazon WAF 自定义规则中&am…...
高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法
IEEE TGRS 2023:基于多模态融合Transformer的遥感图像分类方法 题目 Multimodal Fusion Transformer for Remote Sensing Image Classification 作者 Swalpa Kumar Roy , Student Member, IEEE, Ankur Deria , Danfeng Hong , Senior Member, IEEE, Behnood Ras…...
Trans论文复现:基于数据驱动的新能源充电站两阶段规划方法程序代码!
适用平台:MatlabYalmipCplex/Gurobi; 文章提出了一种电动汽车充电站的两阶段规划方法,第一阶段通过蒙特卡洛法模拟充电车辆需求和电池充放电数据来确定充电站位置;第二阶段通过数据驱动的分布鲁棒优化方法优化充电站的新能源和电池…...
将抖音视频转成MP3并下载
这篇是在上一篇的基础上写的,这篇负责抖音作者详情页的视频转声音提取,这篇需要用到后端。 本地启动后端后,在控制台输入对应代码,即可实现hover在封面上,按d一键下载音频 控制台代码 // 获取作者的视频列表var liEle…...
C程序训练:与输入有关的错误
在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误,下面举例说明。 下面程序的运行结果是错的,但程序又没有错,到底问题出现在哪呢? #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…...
制作 CentOS Stream9 的U盘系统启动盘
一、简述 注:请勿用于商用,如有版权纠纷,于博主无任何关系。(仅用于学习研究使用) 由于CentOs Linux 7和CentOs Stream8终止日期是2024年,需要将系统升级到最新版本的CentOs Stream9,下面是刻录系统盘的操…...
Vulnhub靶机:driftingblues 1
一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues1(10.0.2.17) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…...
CloudCompare——点云空间圆拟合
目录 1.概述2.软件实现3.完整操作4.算法源码5.相关代码 本文由CSDN点云侠原创,CloudCompare——点云空间圆拟合,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 1.概述 CloudCompare软件中的To…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

