karbe/scripts/upload-aquarelles.sh
Claude Integration 47258bf1be feat(plugin): image-gallery-aquarelle-seed hook + upload script
Hook onEnable du plugin image-gallery-aquarelle-seed :
- Pour chaque carbet démo, crée une entrée Media qui pointe vers son aquarelle
  hébergée dans MinIO sous karbe-medias/seed/aquarelle/.
- s3Key préfixé seed/aquarelle/ pour faciliter le détachement au disable.
- Idempotent (skip si Media existe déjà).

Hook onDisable :
- Supprime tous les Media avec s3Key startsWith seed/aquarelle/.
- Les fichiers MinIO restent (pas de coût de redéploiement).

Script scripts/upload-aquarelles.sh :
- Upload depuis /tmp/karbe-aquarelles/*.{jpg,png} vers le bucket karbe-medias.
- Applique la policy public-download au bucket pour que media.karbe.cosmolan.fr
  serve les fichiers sans auth.
- À exécuter une fois après génération des illustrations.
2026-05-31 12:20:35 +00:00

35 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Upload des illustrations aquarelles dans MinIO sous karbe-medias/seed/aquarelle/
# + applique policy download (public-read) pour qu'elles soient servies via
# media.karbe.cosmolan.fr.
#
# Prerequis :
# - Fichiers présents dans /tmp/karbe-aquarelles/
# - MinIO container karbe-minio en up + bucket karbe-medias existant
# - .env.production accessible pour récupérer MINIO_ROOT_USER/PASSWORD
#
# Usage : ./scripts/upload-aquarelles.sh
set -euo pipefail
SRC="${1:-/tmp/karbe-aquarelles}"
BUCKET="karbe-medias"
PREFIX="seed/aquarelle"
ENV_FILE="/home/ubuntu/karbe/.env.production"
USER=$(sudo grep -oP '^MINIO_ROOT_USER=\K.*' "$ENV_FILE")
PASS=$(sudo grep -oP '^MINIO_ROOT_PASSWORD=\K.*' "$ENV_FILE")
echo " upload depuis $SRC vers minio://$BUCKET/$PREFIX/"
docker run --rm \
--network karbe-net \
-v "$SRC:/data:ro" \
--entrypoint sh \
minio/mc:latest \
-c "
mc alias set karbe http://karbe-minio:9000 '$USER' '$PASS' >/dev/null
mc cp /data/*.jpg /data/*.png karbe/$BUCKET/$PREFIX/
mc anonymous set download karbe/$BUCKET || true
echo '---'
mc ls karbe/$BUCKET/$PREFIX/ | head -20
"