WebDav协议相关软件@简单配置局域网内的http和WebDav服务器和传输系统

文章目录

    • 相关软件
      • windows自带
      • 第三方软件
    • chfs(CuteHttpFileServer)
      • 下载软件
      • GUI方案
    • 补充
      • 命令行方案
        • 命令行程序定位
        • 简单创建服务站点
        • 使用配置文件配置细节
      • 使用软连接或符号链接等手段将向共享站点的根目录添加文件
      • 开机自启
        • 服务包装
          • nssm包装
          • 使用powershell包装
        • 服务启动
        • chfs服务@检查服务运行情况
      • 效果
      • 附:模板配置
    • FAQ
      • 浏览器无法打开
      • 关于权限问题(访问控制)
      • 日志
      • 其他

相关软件

windows自带

  • IIS webdav
    • windows自带的服务,启用相关功能后还要进行一系列的配置
    • 而且在WebDav客户端上传到站点的文件大小存在限制问题
    • 总体体验并不好,因此推荐第三方专业软件,灵活而且易于配置

第三方软件

  1. CuteHttpFileServer | iscute.cn👺
    • 提供了windos端的命令行程序和图形界面程序,轻量而且易于配置
  2. GitHub - hacdias/webdav: Simple Go WebDAV server.
    • 专门设计支持WebDav的命令行程序(可能停更了)
  3. 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.exe
      
      Path
      ----
      D:\exes\chfs-windows-x64-3.1\chfs-windows-x64-3.1.exe
      
      PS 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 string
              Configuration file.
        -path string
              Shared directories, separated by '|'. (default ".")
        -port uint
              HTTP listening port. (default 80)
        -version
              Print 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.1
              Homepage: http://chfs.iscute.cn
               Author: docblue@163.com
    **************************************************
       Shared path: D:\1WEBDAV
    Listening port: 8084
          Websites: http://192.168.1.46:8084
       Webdav 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.1
              Homepage: http://chfs.iscute.cn
               Author: docblue@163.com
    **************************************************
       Shared path: D:\MINGW64
    Listening port: 8084
       Config file: .\chfs.ini
          Websites: http://192.168.1.46:8084
       Webdav URLs: http://192.168.1.46:8084/webdav
    
    2024-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_service
      
      PS 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的传输

日志

  • 保存日志,需要指定日志存储目录,如果指定一个不存在的目录,日志文件将无法保存
  • 所以如果要保存的路径需要检查存在性,不存在手动创建一下

其他

  • 详情参考官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317311.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装nvidia driver出现 the cc vision check falied

这里提示说的需要gcc12,但是我只有gcc11,所以就报错了&#xff0c;说一说我自己的解决方法&#xff1a; 安装gcc12和g12,再切换版本为gcc12 安装gcc12: sudo apt install gcc-12安装g12: sudo apt -y install g-12切换版本&#xff1a;参考博客

MSF流量加密

1、背景介绍 在MSF中生成shell&#xff0c;并上线运行时。都是通过http https tcp等协议传输。虽然MSF本身会对流量进行加密&#xff0c;但MSF太出名以致于其加密特征容易被IPS&#xff0c;WAF等可以检测带有攻击的特征的设备拦截或记录。 2、生成 SSL 证书 openssl req -x50…

《ORANGE’S:一个操作系统的实现》读书笔记(二十九)文件系统(四)

上一篇文章完善了硬盘驱动程序&#xff0c;并且完成了一个文件系统。这篇文章开始记录对文件的操作&#xff0c;首先记录如何创建一个文件。 目录 创建文件 Linux 下的文件操作 文件描述符&#xff08;file descriptor&#xff09; open() 创建文件所涉及的其它函数 str…

Redis:原理速成+项目实战——Redis企业级项目实战终结篇(HyperLogLog实现UV统计)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis实战14&#xff08;BitMap实现用户签到功能&#xff09; &#x1f4da;订阅专栏&am…

vue中使用js-doc

安装依赖 安装vue-template-compiler npm install ​vue-template-compiler​ 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容&#xff1a; {"tags": {"allowUnknownTags": true,// 指定所用词…

linux环境下安装postgresql

PostgreSQL: Linux downloads (Red Hat family)postgresql官网 PostgreSQL: Linux downloads (Red Hat family) 环境&#xff1a; centos7 postgresql14 选择版本 执行启动命令 配置远程连接文件 vi /var/lib/pqsql/14/data/postgresql.conf 这里将listen_addresses值由lo…

阿里云服务器+宝塔 (尝试部署一个最简单的静态页面)

1. 免费白嫖一个阿里服务器 进入网址&#xff1a;服务器购买地址 选择预装宝塔面板 购买完成后前往控制台 查看当前实例 设置或修改密码 设置用户名和密码 2. 远程连接到服务器 2.1. 使用Workbench连接 输入用户名和密码连接成功页面如下&#xff1a; 2.2. 使…

redis高级篇之单线程和多线程

目录 1、redis的发展史 2、redis为什么选择单线程&#xff1f; 3、主线程和Io线程是怎么协作完成请求处理的&#xff1f; 4、IO多路复用 5、开启redis多线程 1、redis的发展史 Redis4.0之前是用的单线程&#xff0c;4.0以后逐渐支持多线程 Redis4.0之前一直采用单线程的主…

高级分布式系统-第6讲 分布式系统的容错性--可靠的组通信

可靠的组通信 组内通信最好是每个进程之间都建立点到点的通信&#xff0c; 但实际中这样的组织结构不是有效的&#xff0c; 因为会浪费很大的通信带宽。 在平等组中&#xff0c; 多播是主要的组织结构。 但多播是具有同步性质的容错结构&#xff0c; 并不适用拜占庭模型。 多…

Redis命令 - Strings命令组常用命令

1、Set命令 SET key value [EX seconds] [PX milliseconds] [NX|XX]1.1 参数说明&#xff1a; EX seconds: 设置key的过期时间&#xff0c;单位时秒PX milliseconds: 设置key的过期时间&#xff0c;单位时毫秒NX: 只有key不存在的时候&#xff0c;才会设置key的值XX: 只有key…

GitHub注册新账号的操作流程(详细)

目录 第一步 进入官网&#xff0c;点击右上角的"Sign up" 第二步 输入email地址 第三步 设置密码 第四步 输入昵称 第五步 根据个人喜好决定要不要接收GitHub的邮件推送。然后回答他们的验证问题 第六步 输入验证码 我在注册github账号时遇到过一些阻碍&#x…

Web前端 ---- 【Vue3】ref和reactive实现响应式的区别和联系

目录 前言 setup ref 基本数据类型 对象形式 reactive ref和reactive的区别与联系 前言 本文介绍函数ref和函数reactive实现响应式 setup 在介绍ref和reactive之前&#xff0c;先介绍setup,vue3新引入的配置项。在该配置项中&#xff0c;在vue2中的data、methods、comput…

VS游戏打包教程

我用得天天酷跑小游戏做的例子 1:安装打包插件 2:在解决方案里新建一个项目 3:新建一个setup项目 4:界面如下(通过右键folder,可以创建folder目录和输出) 5:素材文件 6:素材放完了就项目输出 7:创建快捷方式 右键这个主输出选择第一个create shortcut 8:将这个快捷方式,拖到,…

MAVROS与机载电脑Jetson nano通信

简介&#xff1a;MAVROS和Jetson nano通信&#xff0c;设置飞控参数和MAVROS文件&#xff0c;实现飞控和机载电脑的通信。MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控&#xff0c;飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX…

MYSQL分表分库 详解

目录 一、垂直拆分于水平拆分的区别&#xff1f; 垂直拆分 水平拆分 二、分表分库有哪些策略&#xff1f; Hash分片策略 枚举分片策略 日期分片策略 范围分片策略&#xff08;用的较多&#xff09; 三、分表分库之后&#xff0c;如何查询的呢&#xff1f; 四、分表分…

009集:open( )、write( )、close( )函数读写文件实例—python基础入门实例

一般来说&#xff0c;计算机文件可以分为两类&#xff1a;文本文件和二进制文件。大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常见的文本文件有&#xff1a;大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常用的文本文件格式有ASCII、MIME、*.txt等&#xff0…

【Linux 内核源码分析】进程调度 -CFS 调度器

Linux调度器 Linux内核调度器是负责决定哪个进程在何时执行的组件。它管理着CPU资源的分配和任务的调度&#xff0c;以确保系统资源的合理利用和任务的高效执行。Linux内核中常见的调度器有多种&#xff0c;包括经典的O(1)调度器、CFS&#xff08;Completely Fair Scheduler&a…

大模型实战笔记04——XTuner 大模型单卡低成本微调实战

大模型实战笔记04——XTuner 大模型单卡低成本微调实战 1、Finetune简介 2、XTuner 3、8GB显存玩转LLM 4、动手实战环节 注&#xff1a; 笔记内容均为截图 课程视频地址&#xff1a;https://www.bilibili.com/video/BV1yK4y1B75J/?spm_id_from333.788&vd_source2882acf…

Flink(十二)【容错机制】

前言 最近已经放假了&#xff0c;但是一直在忙一个很重要的自己的一个项目&#xff0c;用 JavaFX 和一个大数据组件联合开发一个功能&#xff0c;也算不枉我学了一次 JavaFX&#xff0c;收获很大&#xff0c;JavaFX 它作为一个 GUI 开发语言&#xff0c;本质还是 Java&#xff…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …