很多人想把云存储当本地硬盘使,结果卡在第一步:得自己写脚本、配 SDK、处理权限、写重试逻辑。
或者退而求其次,用 rclone 挂载——但它是只读的、不支持 POSIX、小文件慢得像在等煮面。
其实不用折腾。有现成的工具,装完就能在 Finder / 文件资源管理器里直接打开 S3 桶,双击编辑、拖拽上传、右键新建文件夹。
它不模拟文件系统,而是真正实现了一套 POSIX 层。你执行 ls -la 时返回的是真实 inode 号,stat 显示的 mtime 是服务端时间戳,open(O_TRUNC) 会立刻清空对象内容,不是靠临时文件中转。
连 vim 编辑大文本时的 :w! 都能原子提交,不会出现一半写入失败、一半残留的情况。
能替代什么 / 能省多少钱
它不替代某一个具体软件,而是绕开了「开发+运维」这一整套付费服务链。比如企业买 AWS Storage Gateway,一年起步 5000 美元;自建 MinIO 集群加 NFS 网关,至少要两个工程师搭三天。
不是让你少买一个软件,而是让你根本不用走采购流程。
ZeroFS 把 S3 变成真正的文件系统——你不需要再雇人写胶水代码,也不用买商业网关授权。官方没提价格,但开源协议是 AGPL-3.0,意味着你可以免费用于任何场景,包括商用。
价格直接砍到零。
更关键的是部署成本:它没有依赖数据库、消息队列或独立元数据服务。所有结构信息都存进 S3 的特殊前缀目录里,同一个桶既存业务数据,也存 ZeroFS 的索引树和日志段。
这意味着你删掉 ZeroFS 进程后,S3 桶里除了几个隐藏目录,其余全是标准对象,其他工具照常能读取。
核心功能
- 支持所有主流对象存储:Amazon S3、Google Cloud Storage、Azure Blob,还有任何兼容 S3 协议的私有存储(比如 MinIO、Ceph RGW)。你手头已有的存储桶,今天就能挂上用,不用迁移数据。配置时只需填
[storage] url = "https://s3.us-east-1.amazonaws.com/my-bucket"和对应 region 参数。 - 原生 POSIX 兼容:Linux/macOS/Windows 都能当本地磁盘用。mkdir、cp、rm、stat、chmod 全都正常跑,连 Docker Desktop 的 WSL2 都认得它挂出来的路径。测试用例覆盖了
renameat2、copy_file_range、fallocate等现代系统调用。 - 加密和压缩一步到位:上传前自动用 XChaCha20-Poly1305 加密,密钥用 Argon2id 衍生;同时支持 zstd 或 lz4 压缩,改算法不用重传文件,后台自动渐进切换。加密密钥从不离开本地,也不会被写入 S3。
- 三种接入方式可选:NFS(适合 macOS/Linux)、9P(轻量高效,支持 Linux 内核模块)、NBD(能当块设备用,比如挂给 QEMU 虚拟机当硬盘)。NBD 支持 TRIM 命令,删除文件后立即释放 S3 空间,不是等后台清理。
- 缓存分两层:内存缓存热数据,本地磁盘缓存大文件。断网时已缓存的内容仍可读写,联网后自动同步回 S3。磁盘缓存路径可指定任意目录,支持 ext4/xfs/btrfs,甚至可以设在 NVMe SSD 上加速随机访问。
- 高可用可选:同一 S3 桶里跑主备节点,主挂了自动切备,配置就多写两行 TOML,不用额外数据库或协调服务。故障检测基于租约心跳,切换过程对客户端透明,已挂载的 NFS 客户端几乎无感知。
三步上手
- 去官网 sh.zerofs.net 复制安装命令,粘贴进终端回车(Mac/Linux);Windows 用户用 Docker Desktop 运行官方镜像,文档里给了完整命令模板。Docker 启动时需加
--cap-add=SYS_ADMIN --device=/dev/nbd0才能启用 NBD 支持。 - 运行 zerofs init 生成配置文件,用记事本或 VS Code 打开,填进你的 S3 接入地址、Access Key 和 Secret Key,这些信息你在云厂商控制台都能直接复制。MinIO 用户还要补上
insecure = true和region = "us-east-1"。 - 保存后执行 zerofs run -c zerofs.toml,几秒后就能在 localhost:2049(NFS)或 localhost:5564(9P)看到挂载点,用系统自带命令 mount 就行。macOS 示例:
sudo mount -t nfs -o resvport localhost:/ /mnt/s3;Linux 9P 示例:sudo mount -t 9p -o trans=tcp,port=5564 localhost /mnt/s3。
项目信息
ZeroFS: A log-structured filesystem for S3. ZeroFS serves S3-compatible buckets as POSIX filesystems over NFS and 9P, or as raw block devices over NB






