# Task: Use local blob storage

## Feature

`docs/FEATURES/platform-scaffold.md`

## Goal

Store uploaded portraits and logos on the API server filesystem instead of Azure Blob Storage.

## Context

User, client, and workspace portrait uploads already flow through `IBlobStorage`. The implementation can change without altering endpoint contracts or frontend behavior.

## Files Likely To Change

- `backend/src/Socialize.Api/Infrastructure/DependencyInjection.cs`
- `backend/src/Socialize.Api/Infrastructure/BlobStorage/Services/*`
- `backend/src/Socialize.Api/Infrastructure/BlobStorage/Configuration/*`
- `backend/src/Socialize.Api/Program.cs`
- `backend/src/Socialize.Api/appsettings.Development.json`

## Constraints

- Do not change API request or response contracts.
- Keep upload validation behavior consistent with the existing blob storage implementation.
- Serve returned blob URLs from the API host so the existing frontend can keep using `portraitUrl` and `logoUrl`.

## Done When

- [x] `IBlobStorage` resolves to local filesystem storage by default.
- [x] Uploaded files are served back from the API host.
- [x] Backend build passes.

## Validation Commands

```bash
dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
```
