#!/bin/bash # Script pour traiter tous les fichiers uploadés et générer les caches # Usage: ./scripts/process-uploaded-files.sh set -e FOLDER_HASH="7d99a85daf66a0081a0e881630e6b39b" UPLOADS_DIR="/home/debian/4NK_IA_front/uploads/$FOLDER_HASH" CACHE_DIR="/home/debian/4NK_IA_front/backend/cache/$FOLDER_HASH" API_URL="https://ia.4nkweb.com/api/extract" echo "🔄 Traitement des fichiers uploadés dans le dossier $FOLDER_HASH" echo "📁 Dossier uploads: $UPLOADS_DIR" echo "💾 Dossier cache: $CACHE_DIR" # Créer le dossier cache s'il n'existe pas mkdir -p "$CACHE_DIR" # Compter les fichiers à traiter TOTAL_FILES=$(ls -1 "$UPLOADS_DIR" | wc -l) echo "📊 Nombre de fichiers à traiter: $TOTAL_FILES" # Traiter chaque fichier PROCESSED=0 FAILED=0 for file in "$UPLOADS_DIR"/*; do if [ -f "$file" ]; then filename=$(basename "$file") filehash=$(basename "$file" | sed 's/\.[^.]*$//') cache_file="$CACHE_DIR/${filehash}.json" echo "" echo "📄 Traitement de: $filename" echo "🔑 Hash: $filehash" # Vérifier si le cache existe déjà if [ -f "$cache_file" ]; then echo "✅ Cache déjà existant, ignoré" continue fi # Traiter le fichier via l'API echo "🚀 Envoi vers l'API..." response=$(curl -s -X POST \ -F "document=@$file" \ -F "folderHash=$FOLDER_HASH" \ "$API_URL") # Vérifier si la réponse contient une erreur if echo "$response" | grep -q '"error"'; then echo "❌ Erreur lors du traitement:" echo "$response" | jq -r '.error' 2>/dev/null || echo "$response" FAILED=$((FAILED + 1)) else # Sauvegarder le résultat dans le cache echo "$response" > "$cache_file" echo "✅ Traitement réussi, cache sauvegardé" PROCESSED=$((PROCESSED + 1)) fi fi done echo "" echo "📊 Résumé du traitement:" echo "✅ Fichiers traités avec succès: $PROCESSED" echo "❌ Fichiers en erreur: $FAILED" echo "📁 Total: $TOTAL_FILES" if [ $PROCESSED -gt 0 ]; then echo "" echo "🎉 Traitement terminé ! Vous pouvez maintenant tester l'API:" echo "curl -s 'https://ia.4nkweb.com/api/folders/$FOLDER_HASH/results' | jq ." fi