It doesn’t appear so @maz, the ex_aws
and ex_aws_s3
libraries only have support for the official AWS regions.
I ended up following the excellent work @factsfinder did in his original fork, just done to the latest main
branch of each of these repos. If it helps for your own reference, here’s the forks:
I use them in a Phoenix application by updating mix.exs
to include:
{:ex_aws, git: "https://github.com/chrislaskey/ex_aws.git", branch: "main", override: true},
{:ex_aws_s3, git: "https://github.com/chrislaskey/ex_aws_s3.git", branch: "main"},
{:hackney, "~> 1.18"}
And in config/runtime.exs
:
config :ex_aws,
access_key_id: [System.get_env("AWS_ACCESS_KEY_ID"), :instance_role],
secret_access_key: [System.get_env("AWS_SECRET_ACCESS_KEY"), :instance_role],
region: System.get_env("BACKBLAZE_B2_REGION")
Where the value of BACKBLAZE_B2_REGION
in my case is "us-west-001"
.
And as a quick sanity check things are working, I use this command to from the REPL to verify a file download from the existing B2 bucket is working:
ExAws.request(ExAws.S3.download_file("nameofmyb2bucket", "hello.txt", "world.txt"))
Note: at the time of writing, I only updated my forks to support "us-west-001"
and "us-west-002"
. If you need other Backblaze B2 regions, you’ll need to add them following the same pattern.