How jnrgxx/object-storage-service works
This is a work-in-progress S3-inspired object storage service. The intended user workflow is to create or select a bucket, upload files, manage their metadata, then download or delete objects; the backend separates HTTP controllers, business services, database metadata, and disk storage. The React entry screen is still a Vite starter, not an implemented storage UI. Several capabilities are documented or declared but their full routes and implementation were not sampled, so unsupported links are omitted.
Main entry points: BucketServiceImpl.java Bucket Management · ObjectServiceImpl.java Object Operations · BucketMapper.java Bucket Mapping · StorageServiceImpl.java Disk Storage
Components 19
HTTP API
- Bucket API
backend/src/main/java/com/object_storage_service/object_storage_service_api/controller/BucketController.java - Object API
backend/src/main/java/com/object_storage_service/object_storage_service_api/controller/ObjectController.java - API Errors
backend/src/main/java/com/object_storage_service/object_storage_service_api/exception/GlobalExceptionHandler.java
Bucket and Object Domain
- Bucket Management
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/BucketServiceImpl.java - Object Operations
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/ObjectServiceImpl.java - Bucket Mapping
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/BucketMapper.java - Object Mapping
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/ObjectMapper.java - Bucket DTOs
backend/src/main/java/com/object_storage_service/object_storage_service_api/domain/dto/BucketDto.java - Create Bucket Request
backend/src/main/java/com/object_storage_service/object_storage_service_api/domain/dto/CreateBucketRequest.java - Object Response
backend/src/main/java/com/object_storage_service/object_storage_service_api/domain/dto/ObjectResponseDto.java
Metadata Persistence
- Bucket Record
backend/src/main/java/com/object_storage_service/object_storage_service_api/domain/entity/Bucket.java - Object Record
backend/src/main/java/com/object_storage_service/object_storage_service_api/domain/entity/StorageObject.java - Bucket Repository
backend/src/main/java/com/object_storage_service/object_storage_service_api/repository/BucketRepository.java - Object Repository
backend/src/main/java/com/object_storage_service/object_storage_service_api/repository/ObjectRepository.java - PostgreSQL
File Storage
- Disk Storage
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/StorageServiceImpl.java - Storage Configuration
backend/src/main/java/com/object_storage_service/object_storage_service_api/config/StorageConfig.java - Local Filesystem
Other components
- API Client
Connections 21
- API Client → Bucket API: manages buckets
README.md - API Client → Object API: manages files
README.md - Bucket API → Bucket Management: dispatches
backend/src/main/java/com/object_storage_service/object_storage_service_api/controller/BucketController.java - Object API → Object Operations: dispatches
backend/src/main/java/com/object_storage_service/object_storage_service_api/controller/ObjectController.java - Bucket Management → Bucket Repository: reads and writes
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/BucketServiceImpl.java - Bucket Management → Object Repository: deletes bucket objects
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/BucketServiceImpl.java - Bucket Management → Disk Storage: deletes bucket files
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/BucketServiceImpl.java - Bucket Management → Bucket Mapping: maps data
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/BucketServiceImpl.java - Object Operations → Bucket Repository: checks bucket
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/ObjectServiceImpl.java - Object Operations → Object Repository: reads and writes
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/ObjectServiceImpl.java - Object Operations → Disk Storage: stores, loads, deletes
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/ObjectServiceImpl.java - Object Operations → Object Mapping: maps responses
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/ObjectServiceImpl.java - Bucket Mapping → Bucket Record: maps entity
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/BucketMapper.java - Bucket Mapping → Bucket DTOs: maps DTO
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/BucketMapper.java - Bucket Mapping → Create Bucket Request: maps request
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/BucketMapper.java - Object Mapping → Object Record: maps entity
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/ObjectMapper.java - Object Mapping → Object Response: maps response
backend/src/main/java/com/object_storage_service/object_storage_service_api/mapper/ObjectMapper.java - Bucket Repository → PostgreSQL: persists records
- Object Repository → PostgreSQL: persists records
- Disk Storage → Storage Configuration: uses settings
backend/src/main/java/com/object_storage_service/object_storage_service_api/service/impl/StorageServiceImpl.java - Disk Storage → Local Filesystem: reads and writes files