Skip to content

fix(storage): Review MinIO issues and evaluate S3 integration #43

@Yoo-SH

Description

@Yoo-SH

Description

Review current MinIO implementation for any issues and evaluate the option to integrate AWS S3 or S3-compatible storage.

Current Issues to Check

  • MinIO connection stability
  • File upload/download reliability
  • Docker volume persistence
  • Bucket initialization on startup
  • Error handling and retry logic

Investigation Tasks

  • Review MinIO logs for errors or warnings
  • Test file upload edge cases (large files, concurrent uploads)
  • Check bucket lifecycle and cleanup policies
  • Verify file integrity after storage
  • Test recovery after service restart

S3 Integration Evaluation

  • Compare MinIO vs AWS S3 vs other S3-compatible services
  • Cost analysis for different storage options
  • Migration path from MinIO to S3
  • Configuration flexibility (support both MinIO and S3)
  • Performance comparison

Proposed Solution

Create abstraction layer for object storage to support multiple backends:

public interface ObjectStorageService {
    void uploadFile(String path, InputStream content);
    InputStream downloadFile(String path);
    void deleteFile(String path);
}

// Implementations:
// - MinIOStorageService
// - S3StorageService

Configuration Options

opencontext:
  storage:
    type: minio  # or 's3'
    minio:
      endpoint: http://minio:9000
      access-key: minioadmin
      secret-key: minioadmin123!
    s3:
      region: ap-northeast-2
      bucket: opencontext-files

Files to Review

  • core/src/main/java/com/opencontext/config/MinioConfig.java
  • File upload/download service implementations
  • docker-compose.yml MinIO configuration

Decision Criteria

  • Reliability and stability
  • Cost effectiveness
  • Ease of deployment
  • Backup and recovery capabilities
  • Support for self-hosted deployment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions