Skip to content

feat(storage): add Azure Blob Storage backend - #1263

Merged
tripodsan merged 1 commit into
mainfrom
helix-shared-storage-azure
Sep 4, 2026
Merged

feat(storage): add Azure Blob Storage backend#1263
tripodsan merged 1 commit into
mainfrom
helix-shared-storage-azure

Conversation

@tripodsan

Copy link
Copy Markdown
Contributor

Summary

  • Adds @adobe/helix-shared-storage-azure, a StorageBackend implementation over @azure/storage-blob, mirroring helix-shared-storage-s3's plug-in shape (StorageAzure subclass, one-line import swap, env-driven default backendFactory).
  • Default factory authenticates from HLX_AZURE_STORAGE_CONNECTION_STRING, falling back to HLX_AZURE_STORAGE_ACCOUNT_NAME + HLX_AZURE_STORAGE_ACCOUNT_KEY.
  • Handles two quirks observed when migrating content from S3 to Azure: falls back to a content_encoding custom metadata property when the native Content-Encoding header is empty, and transparently substitutes -/_ in metadata keys (Azure metadata names can't contain -).

Test plan

  • npm test passes across all 18 workspace packages (including the new one, with 100% line/branch/statement coverage per .nycrc.json)
  • npm run lint passes across all workspace packages
  • Verified the -/_ metadata key round-trip and content_encoding fallback against nock-mocked Azure Blob REST responses

🤖 Generated with Claude Code

Adds @adobe/helix-shared-storage-azure, an AbstractStorageBackend
implementation over @azure/storage-blob, mirroring the plug-in shape of
helix-shared-storage-s3 (StorageAzure subclass + one-line import swap,
HLX_AZURE_STORAGE_CONNECTION_STRING / HLX_AZURE_STORAGE_ACCOUNT_NAME +
HLX_AZURE_STORAGE_ACCOUNT_KEY env-driven default factory).

Also handles two migration quirks seen when moving content from S3 to
Azure: falling back to a content_encoding metadata property when the
native Content-Encoding header is empty, and transparently
substituting `-`/`_` in metadata keys since Azure metadata names can't
contain `-`.
@tripodsan
tripodsan merged commit 4b42ce2 into main Sep 4, 2026
7 of 8 checks passed
@tripodsan
tripodsan deleted the helix-shared-storage-azure branch September 4, 2026 13:20
@tripodsan

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version @adobe/helix-shared-storage-azure-v1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants