备案权重域名预定

 找回密碼
 加入我們

掛載webdav

[複製鏈接]
小猪哼囔 發表於 2024-11-9 22:03:02 | 顯示全部樓層 |閱讀模式
webdav協議有很好的通用性,兼容多平臺多設備,並且使用簡單易上手,想用的舒坦還是要費點心思
服務端不多說,alist對webdav有較好的支持,沒有難度

客戶端:
  1. Windows
  2. Potplayer,kmplayer,RaiDrive,kodi,OneCommander,Mountain Duck,netdrive ❌,rclone,AIMP
  3. Android
  4. Nplayer,kmplayer,ES文件管理器,kodi,nova魔改,reex,cx 文件管理器,Solid Explorer,X-plore File Manager,MiXplorer
  5. IOS
  6. VidHub,Nplayer,kmplayer,infuse,zFuse, Fileball文件管理器
  7. 電視TV
  8. VidHub,Nplayer,kodi,nova魔改
  9. 若只看阿里可以使用阿里官方合作的
  10. 歡視商店-阿里雲盤TV版,網盤播放器-阿里雲盤TV版
  11. Mac
  12. VidHub,IINA,Mountain Duck,infuse,netdrive,rclone
  13. Linux
  14. davfs2,rclone
  15. 筆記軟件
  16. Joplin ,思源
複製代碼
著重談在Windows平臺的掛載使用
掛載為網絡驅動器只是看起來美好
準備(注意備份註冊表):
解除50m限制
新建註冊表FileSizeLimitInBytes.reg,並將以下內容粘貼保存,覆蓋到當前註冊表。
win平臺最大支持4g

  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
  3. "AcceptOfficeAndTahoeServers"=dword:00000001
  4. "BasicAuthLevel"=dword:00000002
  5. "ClientDebug"=dword:00000000
  6. "FileAttributesLimitInBytes"=dword:000f4240
  7. "FileSizeLimitInBytes"=dword:ffffffff
  8. "InternetServerTimeoutInSec"=dword:0000001e
  9. "LocalServerTimeoutInSec"=dword:0000000f
  10. "SendReceiveTimeoutInSec"=dword:0000003c
  11. "ServerNotFoundCacheLifeTimeInSec"=dword:0000003c
  12. "ServiceDebug"=dword:00000000
  13. "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
  14.   00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  15.   77,00,65,00,62,00,63,00,6c,00,6e,00,74,00,2e,00,64,00,6c,00,6c,00,00,00
  16. "ServiceDllUnloadOnStop"=dword:00000001
  17. "SupportLocking"=dword:00000001

複製代碼
修改基礎驗證等級(可選)
如果你的服務端未使用https,需要修改系統默認的驗證等級以滿足條件。
新建註冊表BasicAuthLevel.reg,並將以下內容粘貼保存,覆蓋到當前註冊表。

  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
  3. "AcceptOfficeAndTahoeServers"=dword:00000001
  4. "BasicAuthLevel"=dword:00000002
  5. "ClientDebug"=dword:00000000
  6. "FileAttributesLimitInBytes"=dword:000f4240
  7. "FileSizeLimitInBytes"=dword:02faf080
  8. "InternetServerTimeoutInSec"=dword:0000001e
  9. "LocalServerTimeoutInSec"=dword:0000000f
  10. "SendReceiveTimeoutInSec"=dword:0000003c
  11. "ServerNotFoundCacheLifeTimeInSec"=dword:0000003c
  12. "ServiceDebug"=dword:00000000
  13. "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
  14.   00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  15.   77,00,65,00,62,00,63,00,6c,00,6e,00,74,00,2e,00,64,00,6c,00,6c,00,00,00
  16. "ServiceDllUnloadOnStop"=dword:00000001
  17. "SupportLocking"=dword:00000001

複製代碼
編寫掛載腳本
雖然Windows支持直接掛載webdav,但由於系統原因,每次登錄後都會失效,需要重新掛載,故編寫腳本
新建webdav.bat,複製以下內容並保存

  1. [url=home.php?mod=space&uid=20206]@echo[/url] off
  2. :: webdav鏈接以實際為主
  3. set WEBDAV_URL=https://webdav.com/dav
  4. :: 用戶名
  5. set USERNAME=用戶名
  6. :: 密碼
  7. set PASSWORD=密碼
  8. :: 掛載盤符到Z
  9. set DRIVE_LETTER=Z:
  10. :: 先卸載之前掛載的盤符(如果有)
  11. net use %DRIVE_LETTER% /delete >nul 2>&1
  12. :: 映射網絡驅動器
  13. net use %DRIVE_LETTER% %WEBDAV_URL% /user:%USERNAME% %PASSWORD%

  14. if %errorlevel% neq 0 (
  15.     echo Failed to connect to WebDAV.
  16. ) else (
  17.     echo Successfully connected to WebDAV.
  18. )
複製代碼

雙擊即可直接掛載

如不希望出現明文密碼,可使用Windows自帶的憑據管理,手動添加用戶名密碼
刪除代碼中用戶名密碼,添加以下內容(效果自測)

  1. for /f "tokens=1-3 delims= " %%a in ('cmdkey /webdav:%TARGET_NAME% ^| findstr /C:"用戶名"') do set USERNAME=%%b
  2. for /f "tokens=1-8 delims= " %%a in ('cmdkey /webdav:%TARGET_NAME% ^| findstr /C:"密碼"') do set PASSWORD=%%b
複製代碼
編寫自啟動腳本
新建一個vbs,如webdav.vbs,複製以下內容粘貼保存,注意改為腳本實際路徑。

  1. set ws=WScript.CreateObject("WScript.Shell")
  2. ws.Run "C:\webdav.bat  /start",0
複製代碼
將自啟動腳本放置於
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

重啟計算機試試,應該可以成功掛載。

Linux應該更簡單[debian]
先安裝fuse3和rclone

  1. apt update
  2. apt install fuse3 -y
  3. 安裝rclone
  4. rclone config
  5. 按要求添加webdav信息
複製代碼
複製以下內容運行
新建文件夾 /home/webdav /home/temp

  1. mkdir -p /home/webdav /home/temp && chmod 777 /home/webdav /home/temp
複製代碼
複製以下內容運行
不著急,檢查命令是否有問題

  1. rclone mount webdav:/ /home/webdav --cache-dir=/home/temp/ --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-ahead 64M --buffer-size 128M
複製代碼
沒問題再複製以下內容運行
添加守護進程
  1. cat > /lib/systemd/system/webdav-mount.service <<EOF
  2. [Unit]
  3. Description=webdav

  4. [Service]
  5. Environment='REMOTE_PATH=webdav:/'
  6. Environment='LOCAL_PATH=/home/webdav'

  7. Type=simple
  8. User=root
  9. ExecStart=/usr/bin/rclone mount webdav:/ /home/webdav --cache-dir=/home/temp/ --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-ahead 64M --buffer-size 128M
  10. ExecStop=fusermount -qzu /home/webdav
  11. Restart=on-failure

  12. [Install]
  13. WantedBy=multi-user.target
  14. EOF
複製代碼
systemctl start webdav-mount
systemctl status webdav-mount
systemctl enable webdav-mount

df -h
應該就能看到掛載在本地的webdav儲存了



蘋果搭webdav 可以Mountain Duck   infuse 如果搭建服務可以用自帶的阿帕奇

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 加入我們

本版積分規則

备案权重域名预定

4um點擊跨境網編創業社區

GMT+8, 2024-11-23 15:48

By DZ X3.5

QQ

快速回復 返回頂部 返回列表