5 个版本 (3 个重大更新)
0.7.0 | 2023年7月10日 |
---|---|
0.6.0 | 2023年5月1日 |
0.4.1 | 2022年5月31日 |
0.4.0 | 2022年5月25日 |
0.3.0 | 2022年5月15日 |
#1541 in 文件系统
在 2 crates 中使用
71KB
2K SLoC
Zerostash
Zerostash 是一个具有版本控制的去重、加密文件存储库。
它旨在追求速度并确保所有与文件相关的元数据的安全,包括存储数据的精确大小。
在 M1 Macbook Air 上,Zerostash 可实现大约 1GB/s 的速度。
用例
- 云端或外部硬盘上的增量备份
- 加密并存储整个工作区,以实现计算机之间快速同步
- 密码学上的 Git
入门
使用以下方法之一安装 0s
命令后,您就可以开始备份了
0s commit /path/to/repository $(pwd)
就这样!无需配置。
您将需要输入用户名和密码来创建一个存储库,您需要在随后的调用中输入这些凭据。
如果您想更高级,可以在提交时留下注释,就像您使用 Git 一样。
0s commit -m 'My first backup!' /path/to/repository $(pwd)
只有当运行之间有变化时才会创建提交以节省空间并加快速度。
然后您可以使用 checkout
子命令和输入您的凭据来恢复备份
0s checkout /path/to/repository files_to_restore/*
有关更多详细信息,请运行
0s --help
远程备份
您可以使用以下语法将备份对象发送到兼容 S3 的远程位置
0s commit s3://accesskey:secretkey@region#server.com/bucket /
例如,如果您的文件在 AWS 上,位于 us-east-1
区域,您可以按如下方式使用存储桶
0s commit s3://us-east-1#/backups
从 URL 中省略访问和秘密密钥参数将读取它们的环境
export AWS_ACCESS_KEY_ID=xxxx
export AWS_SECRET_ACCESS_KEY=xxxx
配置
带有示例和文档的配置文件可以在 此存储库中找到。
将其放置在 ~/.config/zerostash/config.toml
,或您的 $XDG_CONFIG_HOME/zerostash
目录中。
使用配置文件是可选的,但可以使管理存储更轻松,并且一些强大的后端配置目前还没有在命令行界面中公开。
一个示例配置看起来像这样
[mystash]
key = { source = "ask"}
backend = { type = "fs", path = "/archive" }
要使用您新定义的 mystash
存储在您的备份中,只需使用它而不是存储库的路径。
0s commit mystash /path/to/movies
安装
Zerostash 支持Linux、macOS和Windows,您可以从 GitHub发行版页面 下载预构建的二进制文件!
如果您正在寻找包管理器集成,请查看下面的内容。
macOS上的安装
有一个您可以使用homebrew tap!
brew install symmetree-labs/homebrew-tap/zerostash
NixOS上的安装
实际上这个仓库是一个nix flake!您可以在基于flake的配置中包含 zerostash
包,或者像这样运行它
nix run github:symmetree-labs/zerostash
注意:由于一个已知问题,nix/macOS目前不受支持。请帮助我们找到解决方案!
使用cargo安装
假设您已经在系统上安装了 cargo
,您可以使用它从 crates.io 安装zerostash。
cargo install zerostash
使用预构建的二进制文件
您可以从 GitHub发行版页面 下载静态Linux二进制文件。
将其放置在您的 $PATH
中,然后运行
0s --help
从源代码构建
使用通常的Rust咒语也可以自己构建二进制文件。使用 rustup
运行 cargo
或使用您的包管理器,然后开始
cargo build --release
威胁模型
Zerostash将以下内容视为威胁模型的一部分
- 保护数据机密性、完整性和真实性
- 数据的确切大小不应为人所知
- 个人用户数据不应在共享存储中可归因
- 一旦数据共享,就不再安全。
- 应能够从存储中删除数据
- 仅访问密钥和原始数据不足以完全泄露数据
设计
有关加密设计的更多详细信息,请参阅底层 Infinitree 库中的 文档。
安全通知
这是一个未经过审查的安全软件。请自行承担风险。
许可证
根据GPLv3分发。
依赖项
~24–36MB
~647K SLoC