随机写入与完整文件系统的价值
先看大多数挂载工具的样子
不少同类工具挂出来的盘,本质是「能浏览、能复制」的只读视图:
- 文件属性是挂载时统一造的假值,
chmod改完就被丢掉,扩展属性根本不支持 - 往云端已有文件的末尾追加一行,默认配置下直接失败
- 想写进去也行——开本地磁盘缓存,代价是改动前必须把整个文件下载回来
对几十 GB 的蓝光原盘或剪辑工程文件来说,这个代价等于不可用。
它是怎么做的
读:边播边取,播放器拖到哪就取哪一段,本地不留副本;需要反复读的目录可以单独开缓存(见目录缓存与上传临时目录的权衡设置)。
写:对象存储的上传必须带文件哈希,改动最终必然生成一个新对象——绕不开。区别在于拼装方式:它一边从云端流式取没被改动的片段,一边接上你写进来的部分,直接拼成新对象传上去。改中间几个字节,不需要先花一小时把原文件拉下来。
属性:Linux/macOS 上是完整 POSIX 语义(权限位、属主、三种时间戳、扩展属性 xattr);Windows 上安全描述符完整支持,ACL 照常读写。云盘存不下的部分持久化在本地,改完就在那里,重启不丢。
这对你的实际意义
- 数据库文件、剪辑工程、磁盘镜像这类就地改写的文件,挂载盘上直接能用
- 依赖 xattr 的工具(Finder 标记、备份软件元数据、打标签工具)不失灵
- 域环境和多用户机器的 ACL 权限体系照常运转
官方的说法是:把「随机写」和「完整文件系统」同时做到的云盘挂载工具,目前他们只知道自己一家——这话可以存疑,但方向确实击中了同类工具的通病。
一条注意:写入要过本地临时目录
上传前要算哈希,所以写进挂载盘的数据会先落在本地临时目录,写完传完即删。往挂载盘复制一个 50 GB 的文件,临时目录所在磁盘就得有 50 GB 空闲——空间规划见目录缓存与上传临时目录的权衡设置。