跳到主要内容
AnyStorage
免费下载

macOS WebDAV 服务

在 Mac 上跑一个本地 WebDAV 服务器,用 Finder 挂载所有云存储

在 Mac 上启动本地 WebDAV 服务,用 Finder 的“连接服务器”挂载 S3、OSS、阿里云盘等 20 种存储,不装 macFUSE,也不用降低系统安全性。

在 macOS 上启动本地 WebDAV 服务器,用 Finder 直接挂载云存储,不需要内核扩展,也不需要降低安全性启动。

Mac WebDAV 服务器,macOS 搭建 WebDAV,Finder 挂载 WebDAV

为什么 Mac 用户会搜到这个页面

多半是因为想在访达(Finder)里直接双击一个躺在 S3、阿里云 OSS 或者阿里云盘上的文件,而 macOS 本身并不提供这个能力。

传统解法是加一层 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 按钮;URL、用户名、密码各带一个复制按钮,因为这三样待会儿都要往 Finder 里粘。

开关保持打开,下次启动 app 的时候服务会自己起来。它是被你打开过一次才起来的,不是我们替你决定的。

在 Finder 里挂载

Finder 菜单栏选前往,再选连接服务器(英文界面是 Go → Connect to Server),快捷键 Cmd+K。粘贴 http://127.0.0.1:3211,点连接,在验证框里选注册用户,填 WebDAV 标签页里那对用户名和密码。

卷挂上之后,当前在 AnyStorage 里处于已连接状态的每一个存储,都会以连接名的形式出现在根目录下:一个 S3 桶、一个 Cloudflare R2 桶、阿里云 OSS、腾讯云 COS、阿里云盘、Google Drive、一台 SFTP 机器,甚至只是本地的某个文件夹。能这样暴露出来的连接类型一共有 20 种。

有个细节我们宁可提前讲清楚:连接是懒加载的。app 重启之后,某个连接要先在 app 里打开过一次,才会出现在 WebDAV 根目录下。点进那个标签页,文件夹就有了。反过来,服务运行期间新加的连接会直接出现,不用重启服务。

实际用起来是什么感觉

读取走 HTTP Range 流式传输,所以在 IINA 或者 QuickTime 里把进度条拖到一个大视频的中段,不会先把整个文件拉下来。空格快速查看可用。从桶里把一整个文件夹的 RAW 拖到桌面也可用。任何带标准打开对话框的 Mac 应用都能访问这个挂载点,这才是重点:Finder 只是其中一个客户端,不是唯一那个。

Finder 同时也是出了名的话痨型 WebDAV 客户端。每进一个目录就发一串 PROPFIND,顺手往里写 .DS_Store,还要去探测一堆根本不存在、以 ._ 开头的伴生文件。如果服务器在公网另一头,这些往返正是“WebDAV 好慢”这个印象的来源。但服务跑在 127.0.0.1 上,每次往返都是亚毫秒级,话痨就不再是问题。剩下的延迟来自真正的后端存储,那部分按需拉取。

目录特别大的时候,列目录依然慢。慢在后端 list 本身,本地服务解决不了这件事。

几条限制,先摆在明面上

  • 免费版是只读的。浏览、播放、把文件复制出来都没问题;往回写需要 Pro 授权的完全控制模式。Pro 用户也可以主动把服务钉成只读,拿一个不熟的 app 对着生产数据试的时候,这是个好习惯。
  • 当前版本没有 TLS。端点是明文 http,认证是 HTTP Basic,这正是我们默认只绑 127.0.0.1 的原因。局域网访问是个可选项,打开时 app 会明确警告:凭据会以明文形式在网络上传输。
  • 没有文件锁。两台机器同时改挂载上的同一个文档,这个场景服务不做保护,别把它当成团队协作的基础设施。
  • 顶层的连接文件夹不能通过 WebDAV 改名或删除,也不能在挂载里把文件直接从一个连接搬到另一个连接。跨存储的搬运回 app 里做,那边是带进度显示的正经传输任务。

整个过程没碰内核。不用输管理员密码,没有配置文件要手改,没有缓存模式参数要猜,下次升级 macOS 也不会因为你做过这些而翻车。