跳到主要内容
AnyStorage
免费下载

S3 网络驱动器

把 S3 存储桶映射成网络驱动器:Windows 和 macOS 的做法

Windows 没有原生挂载 S3 的能力。用本地 WebDAV 端点把 S3 存储桶映射成网络驱动器,Windows 和 macOS 都不用装 FUSE 驱动。

借助跑在本机的 WebDAV 端点,把 S3 存储桶变成 Windows 或 macOS 上的网络驱动器,不用安装内核驱动。

S3 挂载本地磁盘,S3 映射网络驱动器,MinIO 挂载

Windows 从来就不认识 S3

文件资源管理器能映射 SMB 共享,能勉强连 FTP,也能挂 WebDAV。对象存储不在这份名单里:Windows 里没有 s3:// 的协议处理程序,以前也没有过。

macOS 同理。Finder 的“连接服务器”只认 smb、afp、ftp、http 和 https,没有一个懂 S3 API。

于是,想用 Photoshop 打开桶里的一张图、让剪辑软件直接读 S3 上的素材、或者把三个对象拖到桌面上,系统本身帮不上忙。最后还是 aws s3 cp,或者开着控制台页面,或者为了一次拖拽去写脚本。

常见的三条路,各自的代价

  • s3fs-fuse:成熟、免费,但依赖 FUSE。macOS 上意味着 macFUSE 这个内核扩展;Apple Silicon 机器要装它,得先进降级安全模式、重启两次,之后每次系统大版本升级都可能翻车。
  • rclone mount:工具本身很好,同样要 FUSE,Windows 上还要 WinFsp,另外得先想清楚 --vfs-cache-mode 选哪档,不然很多程序根本写不进去。
  • 商业挂载驱动:能用,但要装文件系统驱动、要管理员权限,而且是按机器收费。

如果你每天都在挂桶,这些成本谈不上离谱。但如果要的只是一个文件夹,仪式感就太重了。

用本地 WebDAV 把 S3 存储桶映射成网络驱动器

AnyStorage 绕开了这个问题,而不是硬闯。app 用标准 S3 API 连对象存储,再把当前已连上的所有存储,通过一个跑在本机的 WebDAV 服务重新暴露出来。Windows 和 macOS 本来就认识 WebDAV,所以挂载用的是系统自带的客户端,内核里什么都不用装。

步骤不长。先在 app 里添加 S3 连接,打开一次让它真正连上;然后在侧边栏的“服务”里找到 WebDAV 标签页,启动服务。默认监听 http://127.0.0.1:3211,端口可以在 1–65535 之间改,HTTP Basic 认证始终开启:用户名默认 anystorage,密码首次使用时随机生成 24 位字符。两者都能改,有重新生成按钮,URL、用户名、密码旁边都有复制按钮。保持开启的话,下次启动 app 会把服务再跑起来。

当前已连接的每个连接,都会以连接名出现在 WebDAV 根目录下。你的存储桶是一个文件夹,旁边那台 SFTP 服务器也是。

macOS

Finder → 前往 → 连接服务器,或者直接 Cmd+K。填 http://127.0.0.1:3211,点连接,选“注册用户”,把 app 里的用户名和密码粘进去。卷会像普通服务器一样出现在 Finder 边栏。

读取走的是 HTTP Range 流式传输,实际感受是:把一个 4 GB 视频的进度条拖到中间,取的是那一段字节,而不是先把整个对象下完。

Windows

文件资源管理器 → 此电脑 → 映射网络驱动器,粘贴 http://127.0.0.1:3211,再填账号密码。

关于 Windows 自带的 WebDAV 客户端,有两件事我们更愿意摆在明面上说。截至 2026 年,WebClient 服务已经被微软标记为弃用,新版 Windows 上默认不运行,得先在 services.msc 里把它启动。另外 Windows 默认拒绝在 http 上做 Basic 认证:要到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 下把 BasicAuthLevel 改成 2 并重启 WebClient,否则你会撞上“你输入的文件夹似乎无效”这类提示,或者系统错误 67、0x80070043。再补一句:WebClient 的单文件传输上限 FileSizeLimitInBytes 默认是 50,000,000 字节,超过就报 0x800700DF。

这三个坑,换一个第三方 WebDAV 客户端就都不存在了。直接用 AnyStorage 传文件也一样。

R2、B2、MinIO、OSS、COS 都落在同一个盘里

Cloudflare R2、Backblaze B2、阿里云 OSS、腾讯云 COS、Google Cloud Storage、Azure Blob 各自有独立的连接类型;MinIO 和 Wasabi 走 S3 连接类型,填自定义 endpoint 并打开 path-style 寻址。再加上阿里云盘、Google Drive、OneDrive、Dropbox、WebDAV、FTP、SFTP 和本地文件夹,一共 20 种连接类型。

好处很直接:它们会变成同一个 WebDAV 根目录下并列的文件夹。FUSE 那条路是一个远端一个挂载点、一个常驻进程;这里是一个端点、一个盘符,桶再多也一样。

用最小权限的密钥,以及挂载盘不擅长什么

连接时用范围收窄过的密钥。能碰到这个盘符的东西,拿到的权限和这把 AccessKey 完全一致,不多也不少,所以把只允许访问单个 bucket、单个前缀的子账号交给挂载盘,比交出主账号密钥合理得多。

剩下几条边界,建议提前知道,而不是撞上再说。

  • 免费版的 WebDAV 服务是只读的。读写属于 Pro;即便有 Pro,也可以刻意保持只读——对一台只需要往外取文件的机器来说,这是个挺合理的设置。
  • 当前版本没有 TLS,URL 就是明文 http,这正是我们默认绑定 127.0.0.1 的原因。app 里有绑定 0.0.0.0 的局域网模式,打开时会明确警告,因为明文 HTTP 上的 Basic 认证等于把密码摊在网络上。
  • app 重启之后,某个连接要先在 app 里打开一次,才会出现在 WebDAV 根目录下,因为连接是懒加载的。之后新增的连接不需要重启服务就能看到。
  • 挂载盘里不能直接在两个连接文件夹之间复制文件,顶层的连接文件夹也不能通过 WebDAV 改名或删除。

最后一件事:挂载盘是用来处理文件的,不是用来搬五万个文件的。迁移、批量上传、前缀到前缀的复制,这些该交给 app 的传输界面,那里能看进度、能重试失败项。盘符留给你现在就要打开的那个文件——当初想从 S3 拿到的,其实也就是这个。