A custom transfer agent for Git LFS powered by OpenDAL.
- Git LFS can switch the storage backend by custom transfer agents.
- OpenDAL provides access to many storage systems such as Azure, GCP, AWS S3, WebDAV, Dropbox, Google Drive, One Drive, etc.
- lfs-dal enables you to store LFS data on many storage systems!
Download the released binary or build from source.
# build from source
$ cargo install lfs-dal
Or install from homebrew.
$ brew tap regen100/lfs-dal
$ brew install lfs-dal
Configure git-lfs
to use lfs-dal
as a custom transfer agent.
$ 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
Configure OpenDAL service settings in lfs-dal
section at .lfsdalconfig
or .git/config
.
lfs-dal --list
shows available schemes.
For service-specific options, refer to the OpenDAL documentation.
Note
gitconfig does not allow _
in keys. Use -
instead.
Note
lfs-dal looks for .lfsdalconfig
and .git/config
.
.git/config
is not committed to the repository.
Caution
Do not commit your credentials to the repository. Some OpenDAL services support importing credentials via environment variables.
$ 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
Use aws2-wrap.
$ aws2-wrap git lfs pull
For testing OpenDAL settings, run lfs-dal --exit
. It exits immediately after initializing OpenDAL.
For more detailed log, configure lfs-dal
to output log to a file.
$ 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