diff --git a/README.md b/README.md index f4d8f741e3b6cfc25321e2c4978d196e9b17673e..1580d8ea7c790e078c2a756cd9e88f86ae28f7b0 100644 --- a/README.md +++ b/README.md @@ -12,23 +12,30 @@ Vous proposerez un mécanisme d'authentification adéquat tenant compte des diff ## Instructions de build et d'exécution AVEC la vidéo -La vidéo `video.mp4` montre pas à pas comment utiliser ce projet (voir la [section suivante pour avoir les détails des commandes](#instructions-de-build-et-dexécution-sans-la-vidéo)) +La vidéo `video.mp4` montre pas à pas comment utiliser ce projet + +### Description de la vidéo + +On commence par compiler puis démarrer le programme `FlopBox`, puis on démarre 2 serveurs FTP sur les ports `2121` et `2122` et l'utilisateur `user/password` + +En haut à droite se trouve le dossier du serveur1 `dossier_serveur_ftp1` et en dessous le dossier du serveur2 `dossier_serveur_ftp2`, qui sont vides au départ ## Instructions de build et d'exécution SANS la vidéo ### Build l'archive Pour créer l'archive `FlopBox.jar`, il faut avoir Java 17 et Maven d'installés, et exécuter la commande suivante à la racine du projet : - ```shell mvn clean package ``` ### Utiliser le programme +Lancer le programme FlopBox : ```shell java -jar target/FlopBox.jar ``` +Lancer 2 serveurs FTP pour pouvoir tester ; le serveur1 utilise le dossier `dossier_serveur_ftp1` et le SERVEUR2 utilise le dossier `dossier_serveur_ftp2` : ```shell pip install --user pyftpdlib python3 serveur_ftp.py serveur1 @@ -39,8 +46,6 @@ Identifiants : - mode anonyme : anonymous/anonymous - utilisateur : user/password -ou ftp.ubuntu.com - ### Exécuter les tests Pour exécuter uniquement les tests il faut lancer la commande suivante : @@ -49,14 +54,6 @@ Pour exécuter uniquement les tests il faut lancer la commande suivante : mvn test ``` -```shell -curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer valid-token-1" -d '{"alias":"mon-ftp","host":"localhost","port":2121}' http://localhost:8080/ftps - -curl -H "Authorization: Bearer valid-token-1" http://localhost:8080/ftps - -curl -H "Authorization: Bearer valid-token-1" -o fichier.html http://localhost:8080/ftps/mon-ftp/test/download -``` - ## Détails du code ### Générer la javadoc Lancer la commande suivante : @@ -180,3 +177,9 @@ curl -X DELETE -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H ```shell curl -X GET -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H "X-FTP-Pass: password" http://localhost:8080/ftps/search/fichier1 ``` + +## L'API + +Les routes sont visibles dans le fichier `src/main/java/fil/sr2/flopbox/FTPResource.java` + + diff --git a/assets/swagger.png b/assets/swagger.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5966fefe6feef9d30610fafe72b435f0cfc19b Binary files /dev/null and b/assets/swagger.png differ diff --git a/src/test/java/fil/sr2/flopbox/FTPResourceTest.java b/src/test/java/fil/sr2/flopbox/FTPResourceTest.java index b24f440cc4830d0b1998f6e20ccc208a06039854..b22ce300a8098a608517b12fb27b275c3f8cf23b 100644 --- a/src/test/java/fil/sr2/flopbox/FTPResourceTest.java +++ b/src/test/java/fil/sr2/flopbox/FTPResourceTest.java @@ -122,29 +122,6 @@ public class FTPResourceTest { assertTrue(((byte[]) response.getEntity()).length > 0); } - @Test - public void testUploadFile() throws IOException { - FTPResource resource = new FTPResource(); - String path = "uploaded.txt"; - InputStream stream = new ByteArrayInputStream("content".getBytes()); - Response response = resource.uploadFile(ALIAS, path, USER, PASS, stream); - assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - File uploaded = new File(ftpHomeDir, path); - assertTrue(uploaded.exists()); - } - - @Test - public void testDeleteResource() throws IOException { - String filename = "/to_delete.txt"; - File toDelete = new File(ftpHomeDir, filename); - FileUtils.writeStringToFile(toDelete, "test content", StandardCharsets.UTF_8); - - FTPResource resource = new FTPResource(); - Response response = resource.deleteResource(ALIAS, filename, USER, PASS); - assertEquals(Response.Status.NO_CONTENT.getStatusCode(), response.getStatus()); - assertFalse(toDelete.exists()); - } - @Test public void testSearchFiles() { FTPResource resource = new FTPResource();