GoofyFiles est un projet Java (Spring Boot) visant à implémenter un système de découpage intelligent de fichiers.
Les objectifs du projet sont :
- Découper dynamiquement les fichiers (Content-Defined Chunking avec Rabin Fingerprinting)
- Détecter les doublons via le calcul d’empreintes (SHA-1, SHA-256 ou BLAKE3)
- Compresser à la volée chaque chunk (avec Zstd, LZ4 ou Snappy)
- Réaliser des tests de performance sur divers types de fichiers
Note : Pour l'instant, le projet se présente sous forme d'un exemple minimal affichant "Hello, World!" à la racine de l'application.
- Java 17
- Maven
- Docker et Docker Compose
- (Optionnel) Visual Studio Code avec l'extension Language Support for Java™ by Red Hat
- Compilation :
- Ouvre un terminal et rends-toi dans le dossier
java
- Exécute :
mvn clean package
- Ouvre un terminal et rends-toi dans le dossier
- Exécution de l'application :
- Toujours dans le dossier
java
, lance :mvn spring-boot:run
- L'application sera accessible sur http://localhost:8080/.
- Toujours dans le dossier
-
Construire et lancer les conteneurs :
- Depuis la racine du projet (
GoofyFiles
), exécute :docker-compose up --build -d
- Cette commande va :
- Construire l'image de l'application (compilation via le Dockerfile)
- Lancer le conteneur de l'application sur le port
8080
- Lancer un conteneur PostgreSQL sur le port
5432
- Depuis la racine du projet (
-
Mise à jour en développement :
- Si vous modifiez le code (par exemple, le message "Hello, World!"), utilisez :
make docker-update
- Cette commande (définie dans le Makefile) va :
- Recompiler le projet dans le conteneur en utilisant le code source monté dans
/source
- Copier le nouveau jar vers
/app/app.jar
- Redémarrer le conteneur pour appliquer les changements
- Recompiler le projet dans le conteneur en utilisant le code source monté dans
- Si vous modifiez le code (par exemple, le message "Hello, World!"), utilisez :
-
Arrêter et nettoyer les conteneurs :
docker-compose down