For using Backblaze B2 as a special remote, there are currently three choices:
Using rclone
(Actively maintained)Backblaze B2 supports supports the same API as Amazon S3, so git-annex's built-in S3 special remote can be used with it.
However, it needs S3 version 4 signatures, which are only supported by git-annex 8.20200508 and newer.
Here is how to set up the special remote:
git annex initremote backblaze type=S3 signature=v4 host=$endpoint bucket=$bucketid protocol=https
Remember to replace $endpoint with the actual backblaze endpoint and $bucketid with the bucketid.
A dedicated special remote, https://github.com/encryptio/git-annex-remote-b2
(Last updated 2016)
At this time it's not clear which is better, so if you find one works better than the other, please comment below.
I tried to use Backblaze B2 using the second method, and tried different application key permissions. Hopefully I can save your time if you’re going to use this special remote.
In order to init a B2 remote, you should create a key with the ability to read & write all buckets, and you must create a new bucket using git-annex (by setting a unique name in
bucket=
). If you create an empty bucket using Backblaze's web UI, then use that bucket forgit annex initremote
, you will receive this error message:(InternalException (HandshakeFailed (Error_Protocol ("expecting server hello, got alert : [(AlertLevel_Fatal,IllegalParameter)]",True,HandshakeFailure))))
.In order to enable a B2 remote, you need a key with read & write permission to the bucket you're using. If you created a key with only read permission, you can’t use
git annex get
on that remote.