Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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