How mthbttrfl/cloud-storage-api works
Cloud Storage API is a REST backend for user sessions and file management: clients authenticate, browse directories, upload or download files and folders, and create, move, search, or delete resources. The tree and README identify the controllers, services, and MinIO-backed storage layers; sampled source does not show their internal call wiring, so the diagram keeps interactions at documented domain boundaries. PostgreSQL, MinIO, and Redis are suggested by the repository configuration and dependencies; their precise runtime connections are not verified here.
Main entry points: minio MinIO adapters · ResourceController.java Resource endpoints · AuthController.java Auth endpoints · UserAccountService.java User accounts
Components 22
REST API
- Auth endpoints
src/main/java/org/example/cloudstorageapi/controller/AuthController.java - Directory endpoints
src/main/java/org/example/cloudstorageapi/controller/DirectoryController.java - Resource endpoints
src/main/java/org/example/cloudstorageapi/controller/ResourceController.java - User endpoints
src/main/java/org/example/cloudstorageapi/controller/UserController.java
Identity
- Authentication service
src/main/java/org/example/cloudstorageapi/service/auth/AuthenticationService.java - User authentication
src/main/java/org/example/cloudstorageapi/service/auth/UserAuthenticationService.java - Security components
src/main/java/org/example/cloudstorageapi/security - User registration
src/main/java/org/example/cloudstorageapi/service/user/UserRegistrationService.java - User accounts
src/main/java/org/example/cloudstorageapi/service/user/UserAccountService.java - User repository
src/main/java/org/example/cloudstorageapi/repository/UserRepository.java
File storage
- Directory service
src/main/java/org/example/cloudstorageapi/service/storage/StorageDirectoryService.java - Resource service
src/main/java/org/example/cloudstorageapi/service/storage/StorageResourceService.java - Upload service
src/main/java/org/example/cloudstorageapi/service/storage/StorageUploadService.java - Download service
src/main/java/org/example/cloudstorageapi/service/storage/StorageDownloadService.java - MinIO adapters
src/main/java/org/example/cloudstorageapi/service/storage/minio - MinIO operations
src/main/java/org/example/cloudstorageapi/storage/minio/operation - Path resolution
src/main/java/org/example/cloudstorageapi/storage/minio/resolver
Persistence and configuration
- PostgreSQL
- MinIO object store
- Redis sessions
- Application configuration
src/main/java/org/example/cloudstorageapi/config
Other components
- API client
Connections 25
- API client → Auth endpoints: auth requests
- API client → Directory endpoints: directory requests
- API client → Resource endpoints: resource requests
- API client → User endpoints: user requests
- Auth endpoints → Authentication service: authentication
- Auth endpoints → User registration: registers users
- User endpoints → User accounts: account actions
- Directory endpoints → Directory service: directory actions
- Resource endpoints → Resource service: resource actions
- Resource endpoints → Upload service: uploads
- Resource endpoints → Download service: downloads
- Authentication service → User authentication: authenticates
- User registration → User accounts: creates account
- User accounts → User repository: user data
- User repository → PostgreSQL: persists users
- Directory service → MinIO adapters: directory operations
- Resource service → MinIO adapters: resource operations
- Upload service → MinIO adapters: uploads content
- Download service → MinIO adapters: retrieves content
- MinIO adapters → MinIO operations: storage operations
- MinIO operations → MinIO object store: reads and writes
- MinIO adapters → Path resolution: resolves paths
- Application configuration → MinIO object store: configures client
- Application configuration → Redis sessions: configures sessions
- Security components → Redis sessions: stores sessions