Overview
The Media module provides:- File uploads - Store images and videos
- URL generation - Get public URLs for stored files
- File deletion - Remove files from storage
- Container management - Organize files in containers
Configuration
Azure Setup
Module Registration
The Media module is registered in the API:Wolfix.API/Extensions/WebApplicationBuilderExtension.cs
Implementation
Azure Blob Repository
The repository handles all Azure Blob operations:Media.Infrastructure/Repositories/AzureBlobRepository.cs
Repository Interface
Media.Domain/Interfaces/IAzureBlobRepository.cs
Media Service
Application service orchestrates blob operations:Media.Application/Services/MediaService.cs
File Upload Flow
Container Organization
Files are organized in containers by type:File Deletion
Delete files from both Azure and database:Media.Application/Services/MediaService.cs
Advanced Features
Generate SAS Tokens
For temporary access to private blobs:Set Blob Metadata
Copy Blob
Security
Private Containers
Make containers private by default:Validate File Types
Scan for Malware
Integrate with antivirus service:Cost Optimization
Use Blob Lifecycle Policies
Archive or delete old files:Use CDN
Serve static content through Azure CDN:Troubleshooting
Connection String Invalid
Issue: “No valid combination of account information found.” Solution: Verify connection string format:Container Not Found
Issue: “The specified container does not exist.” Solution: EnsureCreateIfNotExistsAsync() is called:
File Upload Fails
Issue: “Request body too large.” Solution: Increase max request body size:Next Steps
Google OAuth
Add Google authentication
Toxicity API
Content moderation integration