refactor(storage): extract StorageProvider interface and R2Provider

↗ view on GitHub · Allen Morgan · 2026-05-08 · 45310480

Introduces a StorageProvider interface, an R2Provider class wrapping the
existing R2/S3 logic, and a createProvider() factory that selects based
on env vars. The four public functions (uploadFile, downloadFile,
deleteFile, getSignedUrl) delegate to a singleton.

Zero behaviour change for existing R2 deployments. Makes it
straightforward for self-hosters to add other providers (GCS, S3,
local filesystem, Azure Blob) without touching call sites.
Repository Altien/mikeOssAzure
Author Allen Morgan <amorgan@altien.com>
Authored
Parents d9690965
Stats 1 file changed , +175 , -112
Part of Storage provider abstraction + Azure Blob

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-45310480.md from inside the repo you want the change in.

⬇ Download capture-commit-45310480.md