#!/bin/sh # ============================================================================ # MinIO Bucket Initialization Script # Automatically creates all required buckets and policies on startup # ============================================================================ set -e echo "============================================" echo "Starting MinIO Bucket Initialization" echo "============================================" # Wait for MinIO to be ready echo "→ Waiting for MinIO to be ready..." sleep 5 # Configure MinIO client with credentials from environment echo "→ Configuring MinIO client..." mc alias set local http://${MINIO_HOST}:${MINIO_PORT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} # Create all required buckets echo "→ Creating buckets..." mc mb local/text-files --ignore-existing mc mb local/image-files --ignore-existing mc mb local/audio-files --ignore-existing mc mb local/video-files --ignore-existing mc mb local/document-files --ignore-existing mc mb local/pipeline-artifacts --ignore-existing mc mb local/uploads --ignore-existing mc mb local/backups --ignore-existing mc mb local/didi-prod --ignore-existing # single-bucket mode (MINIO_BUCKET=didi-prod) — media upload/download echo "✓ All buckets created" # Enable versioning for important buckets echo "→ Enabling versioning..." mc version enable local/pipeline-artifacts mc version enable local/backups echo "✓ Versioning enabled for pipeline-artifacts and backups" # Set lifecycle policies for temporary files echo "→ Setting lifecycle policies..." cat > /tmp/lifecycle-30days.json < /tmp/lifecycle-60days.json < /tmp/text-service-policy.json < /tmp/image-service-policy.json <