This gem was built to replace azure-storage-blob (deprecated) in Active Storage, but was written to be Rails agnostic.
To migrate from azure-storage-blob to azure-blob:
- Replace
azure-storage-blob
in your Gemfile withazure-blob
- Run
bundle install
- Change the
AzureStorage
service toAzureBlob
in your Active Storage config (config/storage.yml
) - Restart or deploy the app.
Instantiate a client with your account name, an access key and the container name:
client = AzureBlob::Client.new(
account_name: @account_name,
access_key: @access_key,
container: @container,
)
path = "some/new/file"
# Upload
client.create_block_blob(path, "Hello world!")
# Download
client.get_blob(path) #=> "Hello world!"
# Delete
client.delete_blob(path)
For the full list of methods: https://www.rubydoc.info/gems/azure-blob/AzureBlob/Client
A dev environment is supplied through Nix with devenv.
- Install devenv.
- Enter the dev environment by cd into the repo and running
devenv shell
(ordirenv allow
if you are a direnv user). - Log into azure CLI with
az login
terraform init
terraform apply
This will generate the necessary infrastructure on azure- Generate devenv.local.nix with your private key and container information:
terraform output -raw devenv_local_nix > devenv.local.nix
- If you are using direnv, the environment will reload automatically. If not, exit the shell and reopen it by hitting and running
devenv shell
again.
If you prefer not using devenv/nix:
Ensure your version of Ruby fit the minimum version in azure-blob.gemspec
and setup those Env variables:
AZURE_ACCOUNT_NAME
AZURE_ACCESS_KEY
AZURE_PRIVATE_CONTAINER
AZURE_PUBLIC_CONTAINER
bin/rake test
The gem is available as open source under the terms of the MIT License.