跳到主要內容
AnyStorage
免費下載

macOS WebDAV 伺服器

在 Mac 上架一個本機 WebDAV 伺服器,用 Finder 掛載雲端儲存

在 Mac 啟動本機 WebDAV 伺服器,用 Finder 的連接伺服器掛載 S3、R2、Google 雲端硬碟等 20 種儲存,不必安裝 macFUSE 或降低系統安全性。

在 macOS 啟動本機 WebDAV 伺服器,直接在 Finder 掛載雲端儲存,不需要核心擴充功能,也不必降低開機安全性。

Mac WebDAV 伺服器,macOS 架設 WebDAV,Finder 掛載 WebDAV

Mac 上想掛載雲端儲存,一向不好處理

想在 Finder 裡直接打開一個放在 S3、Cloudflare R2 或 Google 雲端硬碟上的檔案,macOS 並沒有內建的做法。手邊有台群暉 NAS 的人狀況好一點,因為 SMB 至少是原生支援的;物件儲存就沒這個待遇。

常見解法是多裝一層 FUSE 驅動程式,例如 macFUSE 搭 s3fs,或是 rclone mount,再不然就是建立在同一套基礎上的商業掛載程式。它們共同的前提是安裝核心擴充功能。而在 Apple Silicon 機器上,安裝核心擴充功能代表你得重開機進復原模式,在啟動安全性工具程式裡把安全性原則改成降低安全性,回到系統設定核准這個擴充功能,然後再重開機一次。之後每次 macOS 大版本更新,都要重新賭一次驅動程式還載不載得起來。

另一條路走的是 Mac 很早以前就會的協定:WebDAV。Finder 本身就是 WebDAV 用戶端,只要讓它連到跑在自己電腦上的伺服器,上面那整串核心擴充功能的手續就通通省下來了。

在 Mac 上啟動 WebDAV 伺服器

打開 AnyStorage,在側邊欄找到服務,切到 WebDAV 分頁,按下 Start,伺服器就在 http://127.0.0.1:3211 上跑起來了。3211 如果跟你既有的服務衝突,1 到 65535 之間任選一個連接埠都可以。

HTTP Basic 驗證永遠是開著的,沒有匿名模式可以不小心留著。使用者名稱預設為 anystorage,密碼會在第一次啟用時自動產生,24 個隨機字元。兩者都能自己改,旁邊還有 Regenerate 按鈕;網址、帳號、密碼各有一個複製按鈕,因為等一下這三樣都要貼進 Finder。

開關保持啟用,下次開啟程式時伺服器會跟著回來。

用 Finder 掛載

Finder 選單列選前往,再選連接伺服器(英文介面是 Go → Connect to Server),快速鍵是 Cmd+K。貼上 http://127.0.0.1:3211,按連接,在驗證視窗選註冊使用者,填入 WebDAV 分頁上那組帳號密碼。

磁碟區掛上之後,目前在 AnyStorage 裡處於已連線狀態的每一個儲存,都會以連線名稱變成根目錄下的一個資料夾:一個 S3 儲存桶、一個 R2 儲存桶、Google 雲端硬碟、Dropbox、一台走 SFTP 的伺服器,或只是本機的某個資料夾。能這樣掛出來的連線類型共有 20 種。

這裡有個細節,我們寧可先講:連線是延遲建立的。程式重新啟動之後,某個連線要先在 AnyStorage 裡打開過一次,才會出現在 WebDAV 根目錄底下。點進那個分頁,資料夾就出現了。相對地,伺服器執行期間新增的連線會直接出現,不用重開伺服器。

Finder 很吵,但在本機上不痛

讀取採用 HTTP Range 串流,所以在 IINA 或 QuickTime 裡把一部大影片的進度拉到中段,不會先把整個檔案抓下來。快速查看可以用。從儲存桶把整個資料夾的 RAW 檔拖到桌面也可以。任何有標準開啟對話框的 Mac 程式都能存取這個掛載點,這才是重點所在:Finder 只是其中一個用戶端,不是唯一的那個。

至於吵這件事。Finder 每進一層目錄就發出一連串 PROPFIND,順手寫入 .DS_Store,還會去探測一堆根本不存在的伴隨檔案。如果 WebDAV 伺服器在網際網路的另一端,這些來回正是大家覺得 WebDAV 很慢的原因。但伺服器就跑在 127.0.0.1,每次來回都是次毫秒等級,吵就不再是問題。剩下的延遲來自真正的後端儲存,那部分是按需求抓取的。

目錄很大的時候,列出檔案還是要等,因為慢的是後端列表本身,本機伺服器幫不上忙。

先說清楚的幾項限制

  • 免費版只提供唯讀。瀏覽、播放、把檔案複製出來都沒問題,要寫回去則需要 Pro 授權的完全控制模式。Pro 使用者也可以刻意把伺服器設成唯讀,拿不熟悉的程式對著正式資料測試時,這是個好習慣。
  • 目前版本沒有 TLS。端點是純 http,驗證方式是 HTTP Basic,這正是我們預設只綁定 127.0.0.1 的理由。區域網路存取是個選項,啟用時程式會明白警告你,帳號密碼會以明文在網路上傳輸。
  • 沒有檔案鎖定。兩台電腦同時修改掛載上的同一份文件,這個情境伺服器不會保護你,別把它當成團隊協作的基礎設施。
  • 最上層的連線資料夾無法透過 WebDAV 改名或刪除,也不能在掛載裡把檔案直接從一個連線搬到另一個連線。跨儲存的搬移請回到程式裡處理,那邊是有進度顯示的正式傳輸任務。

整個過程完全沒碰到核心。不必輸入管理者密碼,沒有設定檔要手動改,也沒有快取模式參數要猜,下一次 macOS 更新更不會因為你做過這些而出事。