Feature: ASP.NET Server (ManagedCode.Storage.Server)

Purpose

Expose storage operations over HTTP and SignalR on top of IStorage so ASP.NET apps can add streaming upload/download endpoints, chunked uploads, and live progress:

The server package is designed as a base layer: consumers can inherit controllers/hubs and customize routing/auth without being locked into rigid defaults.

Main Flows

HTTP upload/download

sequenceDiagram
  participant C as Client
  participant API as StorageController
  participant S as IStorage
  C->>API: POST upload (multipart/stream)
  API->>S: UploadAsync(...)
  S-->>API: Result<BlobMetadata>
  API-->>C: 200 + metadata

Chunked upload

SignalR streaming

Quickstart

dotnet add package ManagedCode.Storage.Server
using ManagedCode.Storage.Server.Extensions;
using ManagedCode.Storage.Server.Extensions.DependencyInjection;

builder.Services.AddControllers();
builder.Services.AddStorageServer();
builder.Services.AddStorageSignalR(); // optional (SignalR streaming)

var app = builder.Build();
app.MapControllers(); // /api/storage/*
app.MapStorageHub();  // /hubs/storage

Components

Current Behavior

Tests

References