4NK_IA_front/scripts/process-uploaded-files.sh

76 lines
2.3 KiB
Bash
Executable File

#!/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