網(wǎng)上書城網(wǎng)站開發(fā)說明書百度人工服務(wù)熱線24小時(shí)
文章目錄
- 相關(guān)軟件
- windows自帶
- 第三方軟件
- chfs(CuteHttpFileServer)
- 下載軟件
- GUI方案
- 補(bǔ)充
- 命令行方案
- 命令行程序定位
- 簡單創(chuàng)建服務(wù)站點(diǎn)
- 使用配置文件配置細(xì)節(jié)
- 使用軟連接或符號(hào)鏈接等手段將向共享站點(diǎn)的根目錄添加文件
- 開機(jī)自啟
- 服務(wù)包裝
- nssm包裝
- 使用powershell包裝
- 服務(wù)啟動(dòng)
- chfs服務(wù)@檢查服務(wù)運(yùn)行情況
- 效果
- 附:模板配置
- FAQ
- 瀏覽器無法打開
- 關(guān)于權(quán)限問題(訪問控制)
- 日志
- 其他
相關(guān)軟件
windows自帶
- IIS webdav
- windows自帶的服務(wù),啟用相關(guān)功能后還要進(jìn)行一系列的配置
- 而且在WebDav客戶端上傳到站點(diǎn)的文件大小存在限制問題
- 總體體驗(yàn)并不好,因此推薦第三方專業(yè)軟件,靈活而且易于配置
第三方軟件
- CuteHttpFileServer | iscute.cn👺
- 提供了windos端的命令行程序和圖形界面程序,輕量而且易于配置
- GitHub - hacdias/webdav: Simple Go WebDAV server.
- 專門設(shè)計(jì)支持WebDav的命令行程序(可能停更了)
- Caddy - The Ultimate Server with Automatic HTTPS (caddyserver.com)
- candy+webdav:Module http.handlers.webdav - Caddy Documentation (caddyserver.com)
chfs(CuteHttpFileServer)
- 本文介紹chfs的用法,該軟件比較簡單易用,輕量靈活(免費(fèi))
- 幾乎不用配置防火墻和共享站點(diǎn)的根目錄的權(quán)限控制
- 同時(shí)給出http和webdav的鏈接,用瀏覽器就可以進(jìn)行webdav傳輸,享受webDav的優(yōu)點(diǎn)
- 瀏覽器所有設(shè)備幾乎都有,因此可以不下在專門的客戶端
下載軟件
- 根據(jù)上述提供的官網(wǎng),下載可執(zhí)行文件
- 如果是計(jì)算機(jī)老手,可以考慮用命令行,更加輕量
- 如果圖方便或者是電腦新手,用GUI也是極好的(及其簡單,可以將軟件語言切換為中文,可以快速配置)
- 復(fù)雜配置也建議用GUI比較方便
- 官網(wǎng)同時(shí)就是使用文檔和使用說明書
GUI方案
-
支持語言切換和配置導(dǎo)出 -
軟件啟動(dòng):配置完成后,點(diǎn)擊左上角的按鈕切換服務(wù)啟動(dòng)或關(guān)閉狀態(tài)
-
右上角可以切換語言和配置導(dǎo)出,觀察操作日志
-
至此就可以實(shí)現(xiàn)方便的局域網(wǎng)內(nèi)傳輸
補(bǔ)充
命令行方案
- 這里假設(shè)用戶有命令行使用經(jīng)驗(yàn)
- windows比如cmd或者powershell都可以
- 這里我用powershell
命令行程序定位
-
找到下載好的命令行可執(zhí)行文件,比如D:\exes\chfs-windows-x64-3.1\chfs-windows-x64-3.1.exe
-
復(fù)制其所在目錄,在命令行中定位到可執(zhí)行文件
-
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起了個(gè)別名,方便后面引用該程序
sal chfs (rvpa .\chfs-windows-x64-3.1.exe)
- 也可以直接修改可執(zhí)行文件的名字(或者配置別名到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.
-
簡單創(chuàng)建服務(wù)站點(diǎn)
-
例如:
chfs -path D:\1WebDav\ -port 8084
- 該命令指出,將目錄
D:\1WebDav
作為共享站點(diǎn)根目錄,端口設(shè)置為8084
(能用就行,不能用時(shí)(和其他服務(wù)沖突時(shí)),稍微改改數(shù)值)
- 該命令指出,將目錄
-
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
使用配置文件配置細(xì)節(jié)
-
有時(shí)WebDav客戶端(軟件)需要使用用戶名密碼登錄才可訪問站點(diǎn),這時(shí)我們要用配置文件配置更多細(xì)節(jié)
-
考慮到可維護(hù)性,建議從官網(wǎng)下載模板,然后根據(jù)模板內(nèi)的注釋說明配置需要的條目即可
- iscute.cn/asset/chfs.ini
- 您可以打開這個(gè)模板鏈接,復(fù)制全部內(nèi)容,然后在找得到的地方(推薦在chfs所在目錄下創(chuàng)建文件
chfs.ini
) - 將模板內(nèi)容粘貼到該文件,根據(jù)需要進(jìn)行配置,樣例放在末尾
-
根據(jù)配置文件,啟動(dòng)服務(wù)
chfs -file chfs.init
(文件名替換為你配置文件目錄,如果在當(dāng)前目錄,則輸入文件名即可)
-
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'
使用軟連接或符號(hào)鏈接等手段將向共享站點(diǎn)的根目錄添加文件
-
如果將文件復(fù)制到共享站點(diǎn)根目錄,可能會(huì)產(chǎn)生重復(fù)文件,造成資源浪費(fèi)
-
可以考慮用軟連接等方法盡可能減少對(duì)其他文件的影響
- powershell和bash在各自平臺(tái)上都可以創(chuàng)建類似的符號(hào)
-
另外chfs支持添加不同目錄到分享站點(diǎn)
-
將兩個(gè)(或更多)獨(dú)立文件夾添加到分享站點(diǎn) -
這個(gè)操作對(duì)http有效,但是webdav仍然只顯示一個(gè)首個(gè)目錄
-
開機(jī)自啟
- 如果您只是偶爾使用(局域網(wǎng)文件傳輸),那么不建議開機(jī)自啟
- 如果經(jīng)常使用,則建議開啟開機(jī)自啟
- GUI軟件勾選開機(jī)自啟以及隨軟件啟動(dòng)運(yùn)行
- 如果是命令行版本,可以用nssm包裝成服務(wù),這樣開機(jī)就會(huì)自動(dòng)運(yùn)行
服務(wù)包裝
nssm包裝
-
命令行版可以用nssm包裝成服務(wù)運(yùn)行(支持老的windows系統(tǒng))
-
將nssm配置到環(huán)境變量,或者配置別名
-
執(zhí)行
nssm install chfs_service
,表示要安裝(包裝)一個(gè)名為chfs_service
的可執(zhí)行程序 -
名字可以自行指定,關(guān)鍵是路徑和參數(shù)(啟動(dòng)方式默認(rèn)即可(自動(dòng)(Automatic)))
-
填寫完后點(diǎn)擊安裝
-
輸入?yún)?shù)和命令行執(zhí)行時(shí)添加的參數(shù)一樣(可以是配置文件,配置參數(shù)也可以是直接寫明在參數(shù)字符串中)
使用powershell包裝
- New-Service (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
- 參考文檔給出了操作方法
- 這里我們沒有成功啟動(dòng)
服務(wù)啟動(dòng)
- 重啟計(jì)算機(jī)檢查效果(會(huì)自動(dòng)啟動(dòng)服務(wù))
- 或者直接打開
service.msc
,找到剛才創(chuàng)建的服務(wù),直接在面板中啟動(dòng) - 或者管理員權(quán)限,命令行中用nssm啟動(dòng):
nssm start chfs_service
chfs服務(wù)@檢查服務(wù)運(yùn)行情況
-
重啟后相關(guān)服務(wù)會(huì)自行啟動(dòng) -
使用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 :
-
效果
- 瀏覽器端支持上傳下載刪除搜索文件等操作,通常別人要發(fā)文件給你或者你要發(fā)文件給別人,都可以讓對(duì)方打開瀏覽器輸入你的ip和端口,進(jìn)行基本的訪問和傳輸操作
- 至于webDav鏈接需要配置一些東西,給自己使用為主,例如手機(jī)上安裝cx file explorer,將計(jì)算機(jī)掛載到手機(jī)上
- 無論是哪種協(xié)議,都可以在線點(diǎn)播常見格式的視頻,音頻或則編輯文本
![]() | 可以修改文本文件或重命名 | |
![]() | 局域網(wǎng)內(nèi)掛在webdav 如果是本機(jī)的WebDav協(xié)議,可以用localhost來代指具體的ip 如果要和局域網(wǎng)內(nèi)的其他人共享,那么其他windows設(shè)備就不是用localhost,而是用服務(wù)器(本機(jī))的ip了 | |
附:模板配置
-
#--------------------------------------- # 請(qǐng)注意: # 1,如果不存在鍵或?qū)?yīng)值為空,則不影響對(duì)應(yīng)的配置 # 2,配置項(xiàng)的值,語法如同其對(duì)應(yīng)的命令行參數(shù) #---------------------------------------# 監(jiān)聽端口 port=8084# 共享根目錄,通過字符'|'進(jìn)行分割 # 注意: # 1,帶空格的目錄須用引號(hào)包住,如 path="c:\a uply name\folder" # 2,可配置多個(gè)path,分別對(duì)應(yīng)不同的目錄 path=D:\share path=C:\Users\cxxu #path="D:\MinGW64"# IP地址過濾 allow=# 用戶操作日志存放目錄,默認(rèn)為空 # 如果賦值為空,表示禁用日志 log=D:\exes\chfs_home\log# 網(wǎng)頁標(biāo)題 html.title=chfs創(chuàng)建的文件中心站點(diǎn)@由配置文件控制細(xì)節(jié)# 網(wǎng)頁頂部的公告板??梢允俏淖?#xff0c;也可以是HTML標(biāo)簽,此時(shí),需要適用一對(duì)``(反單引號(hào),通過鍵盤左上角的ESC鍵下面的那個(gè)鍵輸出)來包住所有HTML標(biāo)簽。幾個(gè)例子: # 1,html.notice=內(nèi)部資料,請(qǐng)勿傳播 # 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=# 是否啟用圖片預(yù)覽(網(wǎng)頁中顯示圖片文件的縮略圖),true表示開啟,false為關(guān)閉。默認(rèn)關(guān)閉 image.preview=true# 下載目錄策略。disable:禁用; leaf:僅限葉子目錄的下載; enable或其他值:不進(jìn)行限制。 # 默認(rèn)值為 enable folder.download=#-------------- 設(shè)置生效后啟用HTTPS,注意監(jiān)聽端口設(shè)置為443------------- # 指定certificate文件 ssl.cert= # 指定private key文件 ssl.key=# 設(shè)置會(huì)話的生命周期,單位:分鐘,默認(rèn)為30分鐘 session.timeout=# 文件/目錄刪除模式: # 1: 安全刪除:移動(dòng)到系統(tǒng)回收站 [不是所有操作系統(tǒng)都支持,建議使用前進(jìn)行測(cè)試。默認(rèn)模式] # 2: 安全刪除:移動(dòng)到chfs的專屬回收站: ~/.chfs_trashbin, 程序會(huì)刪除存儲(chǔ)超過1個(gè)月的文件 # 3: 真正刪除 file.remove=1#----------------- ------------------------ # 注意: 賬戶配置區(qū)域放置到配置文件的后面 #------------------------------------------#----------------- 賬戶及控制規(guī)則 ------------------- # [xxx] xxx即為賬戶名, 訪客的用戶名為guest # password 賬戶密碼 # rule.default 賬戶對(duì)所有的目錄和文件的訪問權(quán)限,但可以針對(duì)任意子目錄進(jìn)行重新設(shè)定訪問權(quán)限,以覆蓋默認(rèn)的權(quán)限(設(shè)置成d,表示最高權(quán)限(讀,寫,刪除)) # rule.none 表示對(duì)哪些子目錄設(shè)置為不可訪問的權(quán)限,多個(gè)目錄使用字符'|'分割,也可以分為多行。注意:該子目錄本身也不可訪問! # rule.r 表示對(duì)哪些子目錄設(shè)置為讀權(quán)限,多個(gè)目錄使用字符'|'分割,也可以分為多行。注意: 該子目錄本身不受影響,影響的只是它所包含的目錄和文件! # rule.w 表示對(duì)哪些子目錄設(shè)置為寫權(quán)限,多個(gè)目錄使用字符'|'分割,也可以分為多行。注意: 該子目錄本身不受影響,影響的只是它所包含的目錄和文件! # rule.d 表示對(duì)哪些子目錄設(shè)置為最高訪問權(quán)限,多個(gè)目錄使用字符'|'分割,也可以分為多行。注意: 該子目錄本身不受影響,影響的只是它所包含的目錄和文件! # # 示例: # [foo] # password=bar # rule.default=r # rule.none=d:\公司制度|d:\財(cái)務(wù)票據(jù) # rule.r=d:\施工項(xiàng)目\2021年 # rule.r=d:\施工項(xiàng)目\2022年 # rule.d=d:\個(gè)人目錄\foo # # 該賬戶名為foo,密碼為bar,默認(rèn)訪問權(quán)限是讀權(quán)限,但賬戶沒有“d:\公司制度”和“d:\財(cái)務(wù)票據(jù)”的訪問權(quán)限,且 # 對(duì)“d:\施工項(xiàng)目\2021年”和“d:\施工項(xiàng)目\2021年”只有讀權(quán)限,對(duì)“d:\個(gè)人目錄\foo”有最高訪問權(quán)限。 ##賬戶xxx,訪客的用戶名為guest [cxxu@dav] password=1 rule.default=d rule.none= rule.r= rule.w= rule.d=
FAQ
瀏覽器無法打開
-
首先檢查端口號(hào)是否正確,默認(rèn)80端口可以不用輸入,否則要明確指出端口號(hào)
-
瀏覽器代理設(shè)置可能導(dǎo)致無法打開本地的http鏈接,例如proxy switchOmega,需要將本地ip(私有ip)過濾掉
- 插件默認(rèn)過濾127.0.0.*
- 但是可能不會(huì)過濾192.168.*
-
或者用
localhost:port
也可以訪問,例如chfs提供的鏈接是:http://192.168.1.46:8084
,則瀏覽器輸入http://localhost:8084
也行
關(guān)于權(quán)限問題(訪問控制)
- 網(wǎng)頁(http鏈接)打開的頁面目前可以訪問所有文件;而登錄受限的用戶后只能訪問受配置文件約束的若干資源
- 這點(diǎn)有些不正常,但是不影響webdav的傳輸
日志
- 保存日志,需要指定日志存儲(chǔ)目錄,如果指定一個(gè)不存在的目錄,日志文件將無法保存
- 所以如果要保存的路徑需要檢查存在性,不存在手動(dòng)創(chuàng)建一下
其他
- 詳情參考官網(wǎng)