Skip to main content

Proxy

Proxy PHP pour Thumbor avec Support de NocoDB

Description

Ce script PHP sert de proxy pour accéder à Thumbor, tout en téléchargeant et en traitant les images provenant de NocoDB. Il cache également les images pour améliorer les performances et inclut des fonctionnalités de journalisation.

Structure du Projet

  1. proxy.php: Script principal pour servir les images via Thumbor.
  2. config.php: Fichier de configuration contenant les paramètres essentiels.
  3. cleanup.php: Script pour nettoyer les fichiers temporaires et le cache.
  4. debug.log: Fichier de journalisation des événements du proxy.
  5. temp/: Dossier pour stocker temporairement les images téléchargées.
  6. cache/: Dossier pour stocker les images mises en cache.

Explication du Code

1. proxy.php

  • Initialisation :

    • Active les rapports d'erreurs et affiche les erreurs.
    • Charge les dépendances via Composer.
    • Charge la configuration depuis config.php.
    • Initialise le cache.
  • Fonction de Journalisation :

    • log_message écrit les messages de log dans un fichier spécifié si la journalisation est activée dans la configuration.
  • Vérification et Création des Dossiers Temporaire :

    • Vérifie et crée le dossier temporaire s'il n'existe pas.
    • Vérifie si le dossier est accessible en écriture.
  • Fonction de Vérification de Domaine Autorisé :

    • isDomainAllowed vérifie si le domaine d'une URL donnée est autorisé en se basant sur une liste de domaines autorisés.
  • Fonction pour Générer des Noms de Fichier Aléatoires :

    • generateRandomFileName génère un nom de fichier aléatoire pour les fichiers temporaires.
  • Traitement de la Requête :

    • Récupère et analyse les paramètres de la requête.
    • Vérifie si l'URL de l'image est vide ou mal formée.
    • Vérifie si l'URL de l'image est une URL NocoDB ou une URL externe autorisée.
    • Télécharge et traite l'image si elle provient de NocoDB.
    • Construit l'URL Thumbor et récupère l'image transformée.
  • Mise en Cache :

    • Met en cache les images transformées pour améliorer les performances.

2. config.php

Ce fichier contient les paramètres de configuration pour le proxy, incluant :

  • Les domaines autorisés.
  • Les URLs de base pour Thumbor et NocoDB.
  • Les chemins pour les dossiers temporaires et de cache.
  • Les options de journalisation.
  • Les types MIME autorisés.
  • Les tailles maximales d'image.

3. cleanup.php

  • Nettoyage des Fichiers Temporaires et de Cache :
    • cleanupOldFiles supprime les fichiers plus anciens qu'une certaine période dans les dossiers temporaires et de cache.

Conclusion

Ce proxy PHP est conçu pour servir les images via Thumbor tout en téléchargeant et en traitant les images provenant de NocoDB. Il met en cache les images pour des performances optimales et inclut des fonctionnalités de journalisation et de nettoyage pour gérer les fichiers temporaires et de cache.