/backblaze-b2-action

GitHub Action to sync a directory with a remote Backblaze B2 bucket.

Primary LanguageShellMIT LicenseMIT

GitHub Action for Backblaze B2 🔥

This simple action syncs a directory (either from your repository or generated during your workflow) with a remote bucket on Backblaze B2.

Many find B2 appealing because of its free bandwidth deal with Cloudflare via the Bandwidth Alliance, but unlike other popular cloud "bucket" providers like DigitalOcean Spaces and DreamObjects, it is not compatible with S3's API, so using this official Python-based tool is required.

Usage

workflow.yml Example

Place in a .yml file such as this one in your .github/workflows folder. Refer to the documentation on workflow YAML syntax here.

name: Sync B2 Bucket
on: push

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@master
    - name: Push To Your Bucket
      uses: earendildev/backblaze-b2-action@master
      env:
        SOURCE_DIR: './'
        B2_BUCKET_PATH: 'b2://some-bucket/some/path/'
        B2_APPKEY_ID: ${{ secrets.B2_APPKEY_ID }}
        B2_APPKEY: ${{ secrets.B2_APPKEY }}

Required Environment Variables

Key Value Type Required
SOURCE_DIR The local directory you wish to sync/upload to B2. For example, ./public or ./. env Yes

Required Secret Variables

The following variables should be added as "secrets" in the action's configuration.

Key Value Type Required
B2_BUCKET_PATH The name of the bucket you're syncing to. For example, b2://some-bucket/some/dir/. secret Yes
B2_APPKEY_ID Your Backblaze Application Key ID. Generate it here. secret Yes
B2_APPKEY Your Backblaze Application Key — aka the "secret" key. Generate it here. secret Yes

License

This project is distributed under the MIT license.