#!/bin/bash # EMEX Image Upload: webp.7z → MinIO (es bucket) # Prerequisites: p7zip-full, mc (MinIO client) # Run from anywhere: bash scripts/emex-image-upload.sh set -euo pipefail ARCHIVE="/home/s/webp.7z" EXTRACT_DIR="/tmp/emex-webp" MC_ALIAS="local" BUCKET="es" echo "=== EMEX Image Upload ===" echo "Archive: $ARCHIVE ($(du -sh "$ARCHIVE" | cut -f1))" # 1. Extract if [ ! -d "$EXTRACT_DIR" ]; then echo "Extracting archive..." 7z x "$ARCHIVE" -o"$EXTRACT_DIR" -y else echo "Extract dir already exists, skipping extraction" fi # 2. Create bucket echo "Creating MinIO bucket: $BUCKET" mc mb "${MC_ALIAS}/${BUCKET}" 2>/dev/null || true mc anonymous set download "${MC_ALIAS}/${BUCKET}" 2>/dev/null || true # 3. Count files TOTAL=$(find "$EXTRACT_DIR" -name "*.webp" -o -name "*.gif" | wc -l) echo "Total images to upload: $TOTAL" # 4. Upload # Structure in archive: images/CATALOG_CODE/GROUP_ID/FILENAME.ext # Target: es/CATALOG_CODE/GROUP_ID/FILENAME.ext echo "Uploading to MinIO..." mc mirror --overwrite "$EXTRACT_DIR/images/" "${MC_ALIAS}/${BUCKET}/" 2>&1 | tail -5 echo "=== Upload complete ===" echo "Public URL example: https://storage.sase.tr/es/BMW202501/14788/E36M0AF.webp" # 5. Verify echo "Bucket stats:" mc du "${MC_ALIAS}/${BUCKET}" 2>/dev/null || echo "(mc du not available)"