OneKuma

OneKuma's Blog

One Lonely Kuma.
github
bilibili
twitter

在 Windows 上掛載 WebDAV

接着上文 折騰了一下阿里雲盤 + AList + Rclone + AnimePaste 繼續倒騰。

上文使用了 rclone 將 WebDAV 掛載到本地目錄,而且必須在 Terminal 里手動運行一下腳本,並且 Terminal 還不能退出,所以我們現在要讓他開機自動在後台啟動。

更新 1:試用了一周後,體驗不是很好,rclone 掛載的本地目錄非常不穩定。時常出現卡死,且長時間未響應,不容易自動恢復;掛載點會因為關機不當,rclone 未正常終止等原因,導致無法被佔用,無法重新掛載。搜了搜發現 Windows 原生就有相關的實現,例如 OneDrive 就在背後使用了 WebDAV。

更新 2:又試用了一段時間 Windows 原生提供的 WebDAV,依然不好用。問題有偶爾發生的開機自動掛載失敗,需要手動點一下,估計原因是它掛載的時候 AList 仍未啟動。其次,在掛載剛剛啟動或者 AList 重啟後,偶爾發生讀取文件會失敗一次。第三,用 VS Code 打開後,不知道為什麼會給 AList 大量並發請求,容易發生各種奇怪的問題。第四,用 VS Code 編輯文本文件時,會發生緩存不一致的問題。最後,現在換用了 RaiDrive,目前似乎有觀察到緩存不一致的問題,但可能 VS Code 有一部分鍋,其它除了沒充錢開機帶了個廣告外,沒有問題,體驗最佳。

方案一:RaiDrive#

官網:https://www.raidrive.com/

下載,安裝,在 UI 上點一點,過程比較傻瓜。

方案二:Windows 原生提供的網絡驅動器映射#

在文件資源管理器中,右鍵 此電腦,選擇 映射網絡驅動器...

image

選擇你想要的驅動器,輸入你的本地 / 遠程 AList 的地址。

image

輸入你的 AList 用戶名,密碼。

image

其它 WebDAV 同理。

可能出現問題#

  1. 可能需要在控制面板開一下 WebDAV,位於 控制面板 - 程式 - 啟用或停用 Windows 功能,選項路徑如下圖所示。

image

  1. 如果你局域網內的 WebDAV 是 HTTP 協議,不是 HTTPS 協議,會出現 “找不到網絡名” 的錯誤。你需要打開 註冊表編輯器,找到 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\WebClient\\Parameters,修改鍵BasicAuthLevel 值為 2,即同時允許 HTTP 與 HTTPS。

方案三:rclone + nssm#

掛載腳本#

掛載腳本需要稍作修改:

  1. rclone 替換為絕對路徑;
  2. 指定 --config 的路徑(你可以通過 rclone config file 查看當前的配置文件路徑);
  3. 掛載到一個單獨的磁碟似乎比掛載到一個目錄穩定一些?
# mount-anime.ps1

D:\bin\rclone mount "alist:/" "R:" `
  --config "C:\Users\<你的系統用戶名>\AppData\Roaming\rclone\rclone.conf" `
  --header "Referer:https://www.aliyundrive.com/" `
  --vfs-cache-mode full --vfs-read-chunk-size-limit 1G --vfs-read-chunk-size 512M `
  --cache-dir "D:\.cache\rclone" --dir-cache-time 1m --buffer-size 128M `
  -o UserName="<你的系統用戶名>" -o GroupName="Authenticated Users"

注意
後面的 nssm 在運行該腳本時,不是從你的當前用戶啟動的,所以沒有 PATH 環境變量;
其次因為登錄用戶的緣故,mount 的目錄權限有問題,命令中的最後一行參考 Mount Permission (Windows) 似乎能修復我自己遇到的權限問題。

nssm#

下載 nssm,它是一個 Windows 的 Non-Sucking Service Manager。

下載 nssm 2.24 解壓後,把可執行文件複製到某個在 PATH 的目錄下(這裡我們統一用的是 D:\bin\)。然後輸入以下命令打開 nssm 的復古 GUI,創建一個名為 mount-anime 的服務。

nssm install mount-anime

填入以下配置:

  • Application - Path:PowerShell 的絕對路徑(比如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe);
  • Application - Startup directory:隨意;
  • Application - Arguments上文創建的掛載啟動腳本絕對路徑
  • I/O:建議將 stdout / stderr 重定向到某個文件方便 DEBUG。

創建完成後,在管理員模式的 Terminal 下啟動服務。

nssm start mount-anime
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。