A cross-provider blob storage toolkit for .NET and ASP.NET that unifies cloud storage APIs behind a single interface.
ManagedCode.Storage is a .NET library that provides a unified interface for interacting with multiple cloud blob storage providers. It solves the problem of vendor lock-in and inconsistent APIs by abstracting operations like upload, download, and metadata management behind a single `IStorage` abstraction, allowing developers to switch providers or use multiple simultaneously without code changes.
.NET developers building applications that require cloud storage integration, especially those working in multi-cloud environments, needing to support multiple storage backends, or seeking to avoid vendor lock-in. It's also valuable for teams using ASP.NET for streaming scenarios or Orleans for distributed actor persistence.
Developers choose ManagedCode.Storage because it drastically reduces the complexity of supporting multiple cloud storage providers, offers seamless integration with ASP.NET and Orleans, and provides advanced features like keyed DI for multi-tenant setups, a virtual file system overlay, and comprehensive testing tools—all while maintaining full control over storage routing and configuration.
Storage library provides a universal interface for accessing and manipulating data in different cloud blob storage providers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a single IStorage interface for major providers like Azure, AWS, GCP, and local systems, enabling code to remain unchanged when switching backends, as highlighted in the motivation section.
Includes ready-to-use controllers and SignalR hubs for resumable uploads, ranged downloads, and real-time progress streaming, detailed in the ASP.NET Controllers & Streaming section.
Supports keyed dependency injection for managing multiple storage instances (e.g., per tenant or region) without manual plumbing, as demonstrated in the Dependency Injection & Keyed Registrations examples.
Backs a wide range of providers including cloud drives (OneDrive, Google Drive), browser storage with IndexedDB/OPFS, and SFTP, listed in the Features and Packages sections.
For cloud-drive providers like OneDrive and Google Drive, developers must handle OAuth flows and token management externally, as the library does not automate authentication, per the credentials guide.
Requires installing separate NuGet packages for each provider and integration (e.g., Server, Client, Orleans), leading to verbose configuration and dependency management, evident in the Packages and Quickstart sections.
The unified interface may not expose all native SDK features, such as advanced legal hold options or provider-specific metadata, potentially limiting use cases that rely on these capabilities.