Innovayse.StorageManager.Extensions
2.0.0
dotnet add package Innovayse.StorageManager.Extensions --version 2.0.0
NuGet\Install-Package Innovayse.StorageManager.Extensions -Version 2.0.0
<PackageReference Include="Innovayse.StorageManager.Extensions" Version="2.0.0" />
<PackageVersion Include="Innovayse.StorageManager.Extensions" Version="2.0.0" />
<PackageReference Include="Innovayse.StorageManager.Extensions" />
paket add Innovayse.StorageManager.Extensions --version 2.0.0
#r "nuget: Innovayse.StorageManager.Extensions, 2.0.0"
#:package Innovayse.StorageManager.Extensions@2.0.0
#addin nuget:?package=Innovayse.StorageManager.Extensions&version=2.0.0
#tool nuget:?package=Innovayse.StorageManager.Extensions&version=2.0.0
StorageManager
A comprehensive .NET storage management solution with support for multiple storage providers, encryption, compression, and caching.
๐ Quick Start
Option 1: Using NuGet Packages (Recommended)
Prerequisites
- .NET 8.0 SDK
- Visual Studio 2022, VS Code, or JetBrains Rider
Installation
- Create a new .NET project:
dotnet new console -n MyStorageApp
cd MyStorageApp
- Install StorageManager packages:
# Core package (required)
dotnet add package StorageManager.Core
# Service implementations
dotnet add package StorageManager.Services
# Storage providers
dotnet add package StorageManager.Providers
# Extensions for ASP.NET Core integration
dotnet add package StorageManager.Extensions
- Use StorageManager in your code:
using StorageManager.Extensions;
using StorageManager.Providers.Local;
var builder = WebApplication.CreateBuilder(args);
// Add StorageManager
builder.Services.AddStorageManagerMinimal();
// Configure local storage
builder.Services.Configure<LocalStorageDriverOptions>(options =>
{
options.RootPath = "C:\\Storage";
options.IsReadOnly = false;
});
var app = builder.Build();
// Use in your application
app.MapGet("/files", async (IStorageManager storageManager) =>
{
var driver = storageManager.CurrentDriver;
var files = await driver.ListAsync("/");
return Results.Ok(files);
});
app.Run();
Option 2: Building from Source
See docs/GettingStarted.md for detailed instructions.
Package Usage Example
See Package Usage Example for a complete working example.
๐ Documentation
Core Documentation
- Getting Started: docs/GettingStarted.md - Quick start guide and setup
- API Reference: docs/API.md - Complete API documentation and examples
- Architecture: docs/Architecture.md - System design and patterns
- Project Status: docs/TODO.md - Current progress and roadmap
- Security: docs/SECURITY.md - Security features and best practices
Development & Deployment
- Contributing: docs/CONTRIBUTING.md - Development guidelines
- Docker Guide: docs/DOCKER.md - Containerization setup
- Health Checks: docs/HEALTH_CHECKS.md - Monitoring configuration
- NuGet Packages: docs/PACKAGES.md - Package information and usage guide
๐ง Scripts & Automation
- Build NuGet Packages: scripts/build-nuget.ps1 - Package building automation
- Docker Operations: scripts/docker-setup.ps1 - Docker environment management
๐ Deployment & Infrastructure
- Development Environment: deployment/docker-compose.yml - Local development stack
- Production Environment: deployment/docker-compose.prod.yml - Production deployment
- Docker Configuration: deployment/.dockerignore - Build optimizations
๐ Project Structure
StorageManager/
โโโ ๐ docs/ # Complete project documentation
โโโ ๐ง scripts/ # PowerShell automation scripts
โโโ ๐ deployment/ # Docker and deployment configurations
โโโ ๐ ci-cd/ # CI/CD pipeline configurations
โโโ ๐ ๏ธ tools/ # Development tools and utilities
โโโ ๐ป src/ # Source code (Core, Services, Providers, etc.)
โโโ ๐ฑ examples/ # Console and Web API examples
โโโ ๐งช tests/ # Unit and integration tests
โโโ ๐ณ docker/ # Docker service configurations
๐ฏ Current Status
100% Complete - Production Ready with All Storage Drivers & Docker Support
- โ All Core Features - Storage drivers, encryption, compression, caching
- โ Complete Testing - 222 tests passing (including Redis driver)
- โ All Storage Drivers - Local, S3, Azure, Google Cloud, SFTP, Memory, Database, Redis
- โ Docker Support - Development and production environments
- โ NuGet Packages - Ready for release
- โ Documentation - Comprehensive guides and references
- โ Security - All vulnerabilities resolved, production-ready security posture
See docs/TODO.md for detailed project status and roadmap.
๐ Getting Started
Prerequisites
- .NET 8.0 SDK or later
- Docker Desktop (for containerized development)
- PowerShell 7.0+ (for automation scripts)
Quick Setup
# Clone the repository
git clone https://github.com/edgar2031/Storage-Manager.git
cd Storage-Manager
# Build the solution
dotnet build
# Run tests
dotnet test
# Start Docker development environment
.\scripts\docker-setup.ps1 -Action start
Using Scripts
# Check Docker status
.\scripts\docker-setup.ps1 -Action check
# Build NuGet packages
.\scripts\build-nuget.ps1 -Build
# Start development environment
.\scripts\docker-setup.ps1 -Action start
๐ฆ Available NuGet Packages
StorageManager is distributed as a set of modular NuGet packages:
Package | Description | Size |
---|---|---|
StorageManager.Core | Core interfaces, models, and enums | ~73 KB |
StorageManager.Services | Main service implementations | ~44 KB |
StorageManager.Providers | All storage driver implementations | ~150 KB |
StorageManager.Extensions | DI extensions and health checks | ~20 KB |
StorageManager.Configuration | Configuration models and validation | ~15 KB |
StorageManager.Utilities | Helper classes and utilities | ~10 KB |
Package Selection Guide
- For Console Applications: Install Core + Services + Providers
- For ASP.NET Core: Install Extensions (includes all dependencies)
- For Library Development: Install only Core
- For Configuration Management: Install Configuration
See docs/PACKAGES.md for detailed package information and usage examples.
๐ Key Features
๐ Monitoring & Metrics
- Prometheus Integration - Comprehensive metrics collection and monitoring
- Real-time Performance Tracking - Storage operations, cache hits, encryption/compression metrics
- Health Monitoring - Storage driver health checks with detailed metrics
- Custom Metrics Support - Extensible metrics system for application-specific monitoring
- Metrics API Endpoints - RESTful endpoints for metrics collection and monitoring tools
๐ Security & Performance
- Multiple Storage Providers: S3, Azure Blob, Google Cloud, Local, Memory, SFTP, Database (SQL Server, PostgreSQL, MySQL), Redis
- Security: AES-256 encryption with configurable keys, secure dependencies
- Performance: GZip compression and intelligent caching
- Production Ready: 100% complete with comprehensive testing and security
- Monitoring: Health checks and comprehensive logging
- Containerization: Full Docker support with development and production environments
- Testing: Complete test coverage with 179 passing tests
๐ค Contributing
See docs/CONTRIBUTING.md for contribution guidelines and development standards.
๐ License
This project is licensed under the MIT License.
๐ Links
- GitHub Repository: https://github.com/edgar2031/Storage-Manager
- Documentation: docs/ - Complete project documentation
- Examples: examples/ - Console and Web API applications
- Tests: tests/ - Unit and integration test suite
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Innovayse.StorageManager.Configuration (>= 2.0.0)
- Innovayse.StorageManager.Core (>= 2.0.0)
- Innovayse.StorageManager.Providers (>= 2.0.0)
- Innovayse.StorageManager.Services (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Console (>= 9.0.0)
- Microsoft.Extensions.Logging.Debug (>= 9.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Innovayse.StorageManager.Extensions:
Package | Downloads |
---|---|
Innovayse.StorageManager
Complete StorageManager package - A comprehensive .NET storage abstraction library supporting multiple cloud providers, local storage, encryption, compression, and caching. Includes all components: Core, Services, Providers, Extensions, Configuration, and Utilities. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|
Major version upgrade to .NET 9. Updated all dependencies to latest versions. Improved performance and compatibility with .NET 9 features.