Skip to content
Snippets Groups Projects
Commit b41e2937 authored by fabiovandewaeter's avatar fabiovandewaeter
Browse files

save

parent 4b677ef7
Branches
Tags
No related merge requests found
......@@ -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`
![swagger](./assets/swagger.png)
assets/swagger.png

63.1 KiB

......@@ -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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment