4.3 KiB
4.3 KiB
MinIO Explorer
Vue d'ensemble du projet
Nom : minio-explorer
Description : Application web simple qui permet d'explorer les fichiers d'un bucket MinIO comme un "Index of" Apache classique. Navigation en lecture seule dans l'arborescence avec possibilité de copier les liens directs vers les ressources.
Architecture : Single Page Application (SPA) entièrement côté client, hébergée directement dans le bucket MinIO qu'elle explore.
Stack technique
- Frontend : HTML/CSS/JavaScript vanilla uniquement
- Backend : Aucun - communication directe avec l'API REST MinIO
- Hébergement : Fichiers statiques à la racine du bucket MinIO
- Déploiement : Via pipeline CD qui dépose les fichiers dans le bucket
Structure du projet
/
├── index.html # Page principale
├── style.css # Styles (type Index of classique)
└── script.js # Logique de navigation et parsing XML
Fonctionnalités
Core Features
- ✅ Détection automatique de l'endpoint MinIO et du bucket depuis l'URL
- ✅ Parsing du XML retourné par l'API MinIO ListBucket
- ✅ Affichage type "Index of" avec tableau (nom, taille, date)
- ✅ Navigation dans les dossiers (clic sur dossier)
- ✅ Liens directs vers les fichiers avec un bouton "copier le lien"
- ✅ Lien ".." pour remonter dans l'arborescence
- ✅ Navigation directe dans tout le bucket sans notion de sous-répertoire de contenu
Limitations volontaires
- ❌ Pas d'upload de fichiers
- ❌ Pas de modification/suppression
- ❌ Interface minimaliste (pas de fancy UI)
Configuration technique
Auto-configuration
L'application se configure automatiquement via l'URL :
- URL type :
https://mon-minio.example.com/mon-bucket/index.html - Endpoint MinIO détecté :
https://mon-minio.example.com - Bucket détecté :
mon-bucket
Prérequis MinIO
- Bucket avec politique de lecture publique
- Configuration CORS appropriée pour les appels depuis le navigateur
- API REST MinIO accessible
Gestion d'erreurs
Approche : Logging simple dans la console uniquement
- Erreurs CORS →
console.error() - Bucket inaccessible →
console.error() - Erreurs réseau →
console.error() - Dossiers vides → comportement normal (affichage vide)
Bonnes pratiques à respecter
Code
- JavaScript ES6+ moderne
- Fonctions pures quand possible
- Nommage explicite des variables et fonctions
- Commentaires pour la logique métier complexe
- Séparation claire HTML/CSS/JS
Structure
- HTML sémantique
- CSS organisé et commenté
- JavaScript modulaire (fonctions distinctes pour parsing, affichage, navigation)
Performance
- Le moins de frameworks/librairies externes possible
- Chargement minimal des ressources
- Appels API optimisés
Instructions pour Claude
Approche de développement
- Commencer par l'architecture : proposer la structure des fichiers et les fonctions principales
- Développement incrémental : HTML de base → CSS simple → JavaScript par étapes
- Testing : tester chaque fonctionnalité avant de passer à la suivante
Style de collaboration
- Simplicité first : toujours privilégier la solution la plus simple
- Pas de over-engineering : éviter les abstractions complexes
- Code lisible : préférer la clarté à la concision
- Bonnes pratiques : respecter les standards web sans compromis
Cas d'usage typiques
- Aide à la structuration du code JavaScript pour le parsing XML
- Conseils sur les appels à l'API MinIO depuis le navigateur
- Debug des problèmes CORS potentiels
- Amélioration progressive de l'interface
- Optimisation des performances
Contexte d'utilisation
- Utilisé via Claude Code pour le développement complet
- Projet from scratch (aucun code existant)
- Développeur préfère une approche directe et pragmatique
- Focus sur la fonctionnalité avant l'esthétique
Notes importantes
- Les erreurs ne remontent QUE dans la console (pas d'UI pour les erreurs)
- L'application ne doit pas afficher ses propres fichiers (index.html, style.css, script.js)
- Navigation uniquement en lecture, pas d'interactions de modification
- Style volontairement basique type "Index of Apache"
- Navigation directe dans tout le bucket, sans préfixe de contenu
- Évolutivité prévue mais pas prioritaire dans la V1