How bahaaalweisy/filestorageservice works
File Storage Service provides an Angular file-management UI backed by an ASP.NET Core API, SQL Server metadata, and local filesystem content. Users sign in with a demo role, upload files normally or in resumable chunks, then list, preview, download, and soft-delete files; admins can inspect and permanently remove deleted files. The README documents audit logging, health checks, and storage/database reconciliation as additional capabilities. API wiring and several implementation links are based on sampled source; documented but unsampled internals are represented at their enclosing paths.
Main entry points: UploadFileService.cs File upload use case · StoredObjectRepository.cs File metadata repository · FileSystemStorage.cs Filesystem content store · ResumableUploadService.cs Resumable upload workflow
Components 30
Angular frontend
- Login screen
frontend/src/app/login/login.component.ts - Session and auth
frontend/src/app/core/auth - Storage page
frontend/src/app/storage/storage-page.component.ts - File list and preview
frontend/src/app/storage/list - Upload UI
frontend/src/app/storage/upload - Files API client
frontend/src/app/storage/services/files.service.ts - Resumable upload client
frontend/src/app/storage/services/resumable-upload.service.ts
API and identity
- Auth controller
src/FileStorage.Api/Controllers/AuthController.cs - Files controller
src/FileStorage.Api/Controllers/FilesController.cs - Streaming upload endpoint
src/FileStorage.Api/Files/FileUploadEndpoint.cs - Upload sessions controller
src/FileStorage.Api/Controllers/UploadSessionsController.cs - Audit log controller
src/FileStorage.Api/Controllers/AuditLogController.cs - JWT and current user
src/FileStorage.Api/Auth
Application workflows
- File upload use case
src/FileStorage.Application/Files/UseCases/UploadFileService.cs - List, access, delete
src/FileStorage.Application/Files/UseCases - Resumable upload workflow
src/FileStorage.Application/Uploads/ResumableUploadService.cs - Audit query and writing
src/FileStorage.Application/Audit - File and session model
src/FileStorage.Domain
Persistence and storage
- File metadata repository
src/FileStorage.Infrastructure/Persistence/StoredObjectRepository.cs - Upload session repository
src/FileStorage.Infrastructure/Persistence/UploadSessionRepository.cs - SQL Server
src/FileStorage.Infrastructure/Persistence/AppDbContext.cs - Filesystem content store
src/FileStorage.Infrastructure/Storage/FileSystemStorage.cs - Storage root
- Audit persistence
src/FileStorage.Infrastructure/Audit - Audit records
src/FileStorage.Infrastructure/Persistence/AppDbContext.cs
Operations
- Reconciliation workflow
src/FileStorage.Application/Maintenance/ReconciliationService.cs - Reconcile command
src/FileStorage.Api/Maintenance/ReconcileCommand.cs - Filesystem inventory
src/FileStorage.Infrastructure/Storage/FileSystemStorageInventory.cs - Readiness checks
src/FileStorage.Api/HealthChecks/FilesystemHealthCheck.cs
Other components
- User / admin
Connections 35
- User / admin → Login screen: chooses role
- Login screen → Session and auth: signs in
- Session and auth → Auth controller: requests token
- Auth controller → JWT and current user: issues JWT
- User / admin → Storage page: manages files
- Storage page → File list and preview: shows files
- Storage page → Upload UI: offers upload
- File list and preview → Files API client: loads and acts
- Upload UI → Files API client: uploads files
- Upload UI → Resumable upload client: uploads chunks
- Files API client → Files controller: requests files
- Resumable upload client → Upload sessions controller: manages sessions
- Files controller → List, access, delete: lists and accesses
- Files controller → File upload use case: deletes files
- Streaming upload endpoint → File upload use case: stores upload
- Upload sessions controller → Resumable upload workflow: runs workflow
- File upload use case → File metadata repository: persists metadata
- File upload use case → Filesystem content store: stages content
- File upload use case → File and session model: creates file model
- List, access, delete → File metadata repository: reads and updates
- List, access, delete → Filesystem content store: reads or deletes
- Resumable upload workflow → Upload session repository: tracks sessions
- Resumable upload workflow → Filesystem content store: appends and commits
- Resumable upload workflow → File metadata repository: saves finalized file
- File metadata repository → SQL Server: reads and writes
- Upload session repository → SQL Server: reads and writes
- Filesystem content store → Storage root: stores content
- Audit log controller → Audit query and writing: queries audit
- Audit query and writing → Audit persistence: reads or writes
- Audit persistence → Audit records: persists records
- Reconcile command → Reconciliation workflow: runs reconciliation
- Reconciliation workflow → Filesystem inventory: enumerates content
- Reconciliation workflow → File metadata repository: compares metadata
- Filesystem inventory → Storage root: scans content
- Readiness checks → Filesystem content store: probes storage