#opendal #lfs #git #transfer #agent #linter #storage

bin+lib lfs-dal

由 OpenDAL 驱动的 Git LFS 定制传输代理

2 个版本

0.1.1 2024年2月7日
0.1.0 2024年1月6日

#926 in 开发工具

MIT 许可证

24KB
412

lfs-dal

由 OpenDAL 驱动的 Git LFS 定制传输代理。

概述

  • Git LFS 可以通过 自定义传输代理 来切换存储后端。
  • OpenDAL 提供了对 许多存储系统 的访问,例如 Azure、GCP、AWS S3、WebDAV、Dropbox、Google Drive、One Drive 等。
  • lfs-dal 允许您在许多存储系统中存储 LFS 数据!

安装

下载发布的二进制文件或从源代码构建。

# build from source
$ cargo install lfs-dal

用法

git-lfs 配置

配置 git-lfs 以使用 lfs-dal 作为自定义传输代理。

$ git lfs install --local
$ git config lfs.standalonetransferagent lfs-dal
$ git config lfs.customtransfer.lfs-dal.path /PATH/TO/LFS-DAL
$ git config -f .lfsconfig lfs.url lfs-dal  # avoid to push to the default server accidentally

lfs-dal 配置

.lfsdalconfig.git/config 中的 lfs-dal 部分配置 OpenDAL 服务设置。 lfs-dal --list 显示可用的方案。对于特定服务的选项,请参阅 OpenDAL 文档

[!NOTE] gitconfig 不允许在键中使用 _。请使用 - 代替。

[!NOTE] lfs-dal 查找 .lfsdalconfig.git/config.git/config 不会被提交到仓库。

[!CAUTION] 不要将您的凭证提交到仓库。一些 OpenDAL 服务支持通过环境变量导入凭证。

AWS S3 示例

$ git config -f .lfsdalconfig lfs-dal.scheme s3
$ git config -f .lfsdalconfig lfs-dal.bucket test
$ git config -f .lfsdalconfig lfs-dal.region us-east-1
$ git config lfs-dal.access-key-id 123456
$ git config lfs-dal.secret-access-key 123456

调试

要测试 OpenDAL 设置,请运行 lfs-dal --exit。它将在初始化 OpenDAL 后立即退出。

要获取更详细的日志,请配置 lfs-dal 以将日志输出到文件。

$ git config lfs.customtransfer.lfs-dal.args "--log-output=log-lfs-dal.txt --log-level=debug"
$ git config lfs.customtransfer.lfs-dal.concurrent false  # avoid log interleaving

替代方案

  • rudolfs 不是一个 LFS 转换代理,而是一个用 Rust 实现的 LFS 服务器。它支持 AWS S3 和本地文件系统。
  • lfsrclone 是一个用 Python 实现的 LFS 转换代理。它运行 rclone 命令来传输数据。
  • lfs-os 是一个用 Rust 实现的 LFS 转换代理。它使用 object_store crate。

依赖项

~24–40MB
~687K SLoC