Documentation du Model « Filesystem » Kévin Tirado 1
Le fonctionnement du Filesystem Les fichiers requis pour son fonctionnement Créer un dossier Déplacer un dossier Evolution à venir Copier un dossier Supprimer un dossier Uploader un fichier Supprimer un fichier Obtenir la taille d’un fichier/dossier Générer le chemin absolu avec un ID Récupérer un Identifiant Vérifier l’existence d’un dossier/fichier Kévin Tirado2
Il fonctionne avec une clé de cryptage pour encoder et décoder chaque nom de dossier ou de fichier avant sa création sur le serveur. Kévin Tirado3 FORMATION_274rf65qw4z5f6hd1sz2j Cryptage Clé de cryptage FORMATION_274rf65qw4z5f6hd1sz2j Décryptage
Le model « Filesystem » à besoin de script sh pour fonctionner. Kévin Tirado4 /var/www/sh editPermission.sh : Permet de modifier les permissions d’un fichier ou dossier. editProprietaire.sh : Permet de modifier le propriétaire d’un fichier ou dossier. cutAndPaste.sh : Couper coller un dossier/fichier copyAndPaste.sh : Copier coller un dossier/fichier editGroup.sh : Editer le groupe d’un dossier/fichier search.sh : Recherche l’existence d’un dossier/fichier Comment un fichier est uploadé jusqu’au Filesystem ?
Kévin Tirado5 PHP (www-data) créer un fichier.tmp dans le dossier tmp /var/www/agility/app/webroot/tmp /home/tampon PHP (www-data) déplace le fichier temporaire pour le rendre réel dans le dossier tampon. /home/filesystem Linux (filesystem) déplace le fichier réel du dossier tampon dans le dossier Filesystem, là où www-data n’a plus les droits. utilisateur
Permissions des différents Dossiers Kévin Tirado6 Valeur numérique: 777 /var/www/agility/app/webroot/tmp /home/tampon Valeur numérique: 702 /home/filesystem Valeur numérique : 770 Voir en détail les permissions
$this->Filesystem->addFolder(‘/SOCIETE_1/USER_5/FORMATION_274/’); Pour créer un dossier, il faut utiliser la méthode « addFolder ». Kévin Tirado7 La méthode attend un chemin en paramètre. Celle-ci retourne TRUE en cas de succès ou FALSE le cas échéant. Une relation s’effectue entre la base de données et le serveur.
Pour déplacer un dossier, il faut utiliser la méthode « cutAndPaste ». Kévin Tirado8 Dans l’exemple ci-dessus, l’entité déplacé a l’id 4 et le dossier de destination a l’ID 3. => A savoir
Il sera possible de déplacer le « dossier » dans un autre dossier. Kévin Tirado9 Evolution à venir très prochainement FORMATION_274 Image.png Doc.pdf FORMATION_185 FORMATION_274 Image.png Doc.pdf
Pour copier un dossier, il faut utiliser la méthode « copyAndPaste ». Kévin Tirado10 Dans l’exemple ci-dessus, l’entité copié a l’ID 4 et le dossier de destination a l’ID 3. => A savoir
$this->Filesystem->deleteFolder(9); Pour supprimer un dossier, il faut utiliser la méthode « deleteFolder ». Kévin Tirado11 La méthode attend un identifiant en paramètre. Celle-ci retourne TRUE en cas de succès ou FALSE le cas échéant.
Kévin Tirado12 Pour uploader un document, il faut utiliser la méthode « addFile ». La méthode attend un identifiant utilisateur, la requête POST et l’identifiant du dossier ciblé. Celle-ci retourne TRUE en cas de succès ou FALSE le cas échéant.
Pour supprimer un document, il faut utiliser la méthode « deleteFile ». La méthode attend un identifiant en paramètre. Kévin Tirado13 $this->Filesystem->deleteFile(8); Celle-ci retourne TRUE en cas de succès ou FALSE le cas échéant.
Pour obtenir la taille d’un document/dossier, il faut utiliser la méthode « size ». La méthode attend l’identifiant d’un fichier ou dossier en paramètre. Kévin Tirado14 $this->Filesystem->size(8, ’giga’); Plusieurs sorties possibles. Par default si le deuxième paramètre n’est pas renseigné, la méthode renvoie la taille en Kilooctet. Vous pouvez obtenir un résultat en : Kilo Octet. Paramètre à passer: « kilo » Méga Octet. Paramètre à passer: « mega » Giga Octet. Paramètre à passer: « giga »
Vous pouvez générer un lien absolu d’un fichier ou d’un dossier grâce à son identifiant. Kévin Tirado15 $this->Filesystem->generateLinkID(4); La méthode retourne: (Le lien est volontairement affiché en clair) /home/filesystem/SOCIETE_8/USER_5/FORMATION_568/SOUSDOSSIER_1/ops.txt
Vous pouvez récupérer un ID d’un dossier/fichier en passant en paramètre: un identifiant utilisateur et un nom de dossier. Kévin Tirado16 $this->Filesystem->getIDFolder($user_id,’BAC’); La méthode retourne un id ou false le cas échéant. Dans l’exemple ci-dessus, il retourne l’id du Bac à sable de l’utilisateur.
La méthode « search » vérifie l’existence de l’entité à partir de /home/filesystem/. Kévin Tirado17 $this->Filesystem->search(‘/SOCIETE_8’); La méthode attend un chemin en paramètre. Celle-ci retourne TRUE en cas de succès ou FALSE le cas échéant.
Kévin Tirado18
L’entité déplacé peut-être un fichier ou un dossier. Dans le cas d’un dossier, tout son contenu sera déplacé dans le dossier de destination. Kévin Tirado19 FORMATION_274 Image.png Doc.pdf FORMATION_185 Image.png Doc.pdf => Retour
L’entité copié peut-être un fichier ou un dossier. Dans le cas d’un dossier, tout son contenu sera copié dans le dossier de destination. Kévin Tirado20 FORMATION_274 Image.png Doc.pdf FORMATION_185 Image.png Doc.pdf => Retour
Valeur numérique de chaque dossier. Kévin Tirado21 => Retour /var/www/agility/app/webroot/tmp/home/tampon /home/filesystem