接入

在 Linux 上挂载

在没有桌面的渲染节点、服务器、CI 机器上,通过 FUSE 把所有空间挂成一个普通文件夹,用令牌和 systemd 服务开机自动挂载。

查看 Markdown

渲染节点、服务器、CI 机器这类没有桌面的 Linux,用一条命令把你所有的空间挂成一个普通文件夹,任何程序都能直接读写:

Shell
sidespace login [email protected]        # 或者用令牌,见下面“无人值守”
sidespace mount --at ~/SideSpace       # Ctrl-C 或 umount ~/SideSpace 停止
ls ~/SideSpace                          # 每个空间一个文件夹

怎么工作

  • 通过 FUSE 挂载,和 Mac 上的挂载是同一套逻辑。
  • 读大文件只取用到的那一段:播放器拖到第 40 分钟,只下载那附近的数据块,不用先把整个文件拉下来。
  • 写入先放在本机。文件安静 2 秒后保存成一个新版本,fsync 会立刻保存。
  • 用临时文件加改名的方式保存,算原文件的新版本,历史不断。
  • mv、mkdir 会同步到空间里。rm 把文件放进回收站,30 天内能恢复。rmdir 只删空文件夹。
  • 别人保存的改动一秒左右就能看到:新文件出现,重新打开文件读到的是新内容。
  • 停止时(Ctrl-C、SIGTERM、umount)先把还没保存的写入存好,再卸载。上次异常退出留下的挂载点,下次启动会自动清掉。
  • 以 root 运行不需要额外软件。普通用户需要 fusermount3,在 fuse3 包里:apt install fuse3。
  • 默认只有挂载的用户能访问。要让同一台机器的其他用户也能访问,加 --allow-other;非 root 运行时,还要在 /etc/fuse.conf 里打开 user_allow_other。

实测有多快,见性能。

无人值守:令牌和开机自动挂载

不想在机器上登录账号,就给这台机器单独做一个令牌,只给它需要的空间和权限:

Shell
# 在你自己的电脑上
sidespace token create render-01 --scope files:read --scope files:write --space "Film A"

把令牌放进机器上的 ~/.config/sidespace/mount.env:

Shell
SIDESPACE_TOKEN=ssp_…

安装包里带一个 systemd 用户服务,负责把空间一直挂在 ~/SideSpace。崩溃会自动重启,停止前会先保存:

Shell
systemctl --user enable --now sidespace-mount
loginctl enable-linger $USER            # 没人登录时也开机挂载
journalctl --user -u sidespace-mount    # 看日志

令牌只能看到它被授权的空间。用 sidespace token revoke 撤销后,这台机器马上失去访问。

安装包

scripts/package-linux.sh 在 rust:alpine 容器里编译出一个静态的 sidespace,不依赖 glibc 版本,各个发行版都能用。产物有两个:

  • sidespace-版本-linux-架构.tar.gz:二进制、服务文件和这份说明。
  • sidespace_版本_架构.deb:装到 /usr/bin/sidespace 和 /usr/lib/systemd/user/,推荐依赖 fuse3。

目前还没有公开的下载页:从仓库自己构建,或者找我们要当前的版本。

也可以用 NFS

不能用 FUSE 的环境(比如没有 /dev/fuse 的容器),可以用 sidespace mount --nfs。它会打印对应的 sudo mount -t nfs … 命令,需要装 nfs-common。