Skip to content

feat: add Azure Blob Storage backend support - #22

Merged
richardartoul merged 1 commit into
richardartoul:mainfrom
spring-financial-group:feat/azure-blob
Aug 13, 2026
Merged

feat: add Azure Blob Storage backend support#22
richardartoul merged 1 commit into
richardartoul:mainfrom
spring-financial-group:feat/azure-blob

Conversation

@GavinPJK

@GavinPJK GavinPJK commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Changes

  • Create azblob backend type, using the Azure SDK for Go
  • Add Azure-specific environment variables (AZBLOB_, AZURE_) and flags (azblob-container and azblob-prefix)
  • Create integration test at integrationtests/integration_azblob_test.go
  • Create GitHub actions example at examples/github_actions_azblob.yml
  • Add new backend details to the README

Context

This PR adds Azure Blob Storage (azblob) as a backend option, implemented in a similar way to GCS and S3 (#2).

Authentication

The client supports three auth methods, attempted in the recommended order-of-preference - Entra ID/SAS Token are both tried before any shared connection strings

Choice of Client

Streaming methods from Azure SDK's high-level azblob.Client are used here:

  • UploadStream takes any io.Reader and doesn't need the total size up-front
  • The alternatives (UploadBuffer/UploadFile) require the whole object as an in-memory []byte or a seekable *os.File

Performance

Azure's closest analogue to S3OZ is a Premium Block Blob Storage account with in-region Local Redundant Storage, which the user accesses over a private endpoint (this has been added to the README)

@GavinPJK

Copy link
Copy Markdown
Contributor Author

@richardartoul just wondering if you are available to assess this?

@richardartoul
richardartoul merged commit 7e66ee2 into richardartoul:main Aug 13, 2026
1 check failed
@richardartoul

Copy link
Copy Markdown
Owner

thanks @GavinPJK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants