dotfiles/bin/b2-ul_me
2020-05-10 10:36:39 +02:00

21 lines
1.1 KiB
Bash

#!/bin/bash
echo "** backblaze b2 custom uploader **"
FILE_TO_UPLOAD=${1}
MIME_TYPE=${2}
B2_KEY_ID=${3}
B2_KEY=${4}
SHA1_OF_FILE=$(openssl dgst -sha1 $FILE_TO_UPLOAD | awk '{print $2;}')
b2_authorize_account=$(curl -s 'https://api.backblazeb2.com/b2api/v2/b2_authorize_account' -u "$B2_KEY_ID:$B2_KEY"
apiUrl=$(echo $b2_authorize_account | python -c "import sys, json; print (json.load(sys.stdin)['apiUrl'])")
B2_TOKEN=$(echo $b2_authorize_account | python -c "import sys, json; print (json.load(sys.stdin)['authorizationToken'])")
B2_BUCKET_ID=$(echo $b2_authorize_account | python -c "import sys, json; print (json.load(sys.stdin)['bucketId'])")
UPLOAD_URL=$(curl -s -H "Authorization:$B2_TOKEN" -d '{"bucketId":"$B2_BUCKET_ID"}' $apiUrl/b2api/v2/b2_get_upload_url | python -c "import sys, json; print (json.load(sys.stdin)['uploadUrl'])")
curl -s -H "Authorization:$B2_TOKEN" -H "X-Bz-File-Name:$FILE_TO_UPLOAD" -H "Content-Type:$MIME_TYPE" -H "X-Bz-Content-Sha1:$SHA1_OF_FILE" -H "X-Bz-Info-Author:${DRONE_COMMIT_AUTHOR}" --data-binary "@$FILE_TO_UPLOAD" $UPLOAD_URL
echo "** done **"