Après avoir testé Jyraphe, voici un autre script de dépôt de fichier FileZ

Ce script est développé par l’Université d’Avignon et des Pays de Vaucluse et les sources sont sur GitHub

En vu de tester le logiciel j’ai réalisé une installation minimal, ainsi par exemple je n’ai pas installé APC qui permet d’avoir une barre de progression lors de l’upload (voir section « Installing and configuring APC » de cette page).

FileZ permet de se brancher sur divers base utilisateur existante (LDAP, DB, CAS), j’ai pris le cas le plus simple créer une base utilisateur dédiée.

 

Pré-requis installation

On crée une base dédiée, la table des utilisateurs et un utilisateur.

Pour cela on se connecte à MySQL :

mysql -u root -p

Puis on lance les ordres SQL (à adapter):

CREATE DATABASE filez;
USE filez;
CREATE TABLE `filez`.`db_users` (
`uid` SERIAL NOT NULL ,
`login` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 40 ) NOT NULL ,
`givenname` VARCHAR( 255 ) NOT NULL ,
`sn` VARCHAR( 255 ) NOT NULL ,
`mail` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO `filez`.`db_users` (`uid`, `login`, `password`, `givenname`, `sn`, `mail`) VALUES (NULL, 'admin', MD5('password'), 'Admin', 'Olympe', 'admin@olympe.local');

On crée ensuite les répertoires nécessaires à FileZ, le répertoire d’upload (exemple /var/Filez/uploads) et le répertoire de log (exemple /var/log/filez) et on s’assure que l’utilisateur exécutant le serveur web (www-data sans doute) à le droits d’y écrire.

Installation

Classiquement, on télécharge l’archive, on la décompresse dans l’arborescence de son serveur Web, on fixe les droits utilisateur (www-data propriétaire des fichiers)

Rque : Filez est assez volumineux, a ce point de l’installation (aucune données) le répertoire fait déjà 20Mo

On configure ensuite son serveur Web, dans le cas de NGINX, filez étant installé dans un sous-répertoire de la racine Web, voici ma configuration

server {
        listen       80;
        server_name  www.domaine.fr;
        root         /var/www/domaine.fr;
 
        index           index.php;
 
	location /filez{
		access_log      /var/log/nginx/filez.access.log;
                location ~ \.php$ {
                        include         /etc/nginx/fastcgi_params;
                        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                        fastcgi_pass    127.0.0.1:9000;
                }
                if (!-e $request_filename) {
                        rewrite ^/(.*)$ /filez/index.php last;
                }
	}
}

A noter ma traduction très personnelle des règles de réécriture Apache contenu dans le .htaccess à la racine de filez

  RewriteCond %{REQUEST_URI} !favicon.ico
  RewriteCond %{REQUEST_URI} !doc/user/(.*)\.
  RewriteCond %{REQUEST_URI} !resources/(.*)\.
  RewriteRule ^(.*)$ index.php [QSA,L]

On peut ensuite aller sur l’URL de FileZ

Le script d’installation nous prévient que le mod_rewrite n’est pas activé, normal puisque l’on est pas sous Apache et préconise divers paramétrages de php pour optimiser l’upload.

Paramétrage que je n’ai pas fait dans le cadre de ce test, peut être plus tard…

On peut continuer, s’affiche ensuite un long formulaire de paramétrage :

Quelques éléments :

  • Upload directory (absolute dir) (required) : mettre ici le répertoire créé en pré-requis
  • Log directory (absolute dir) (required) : mettre ici le répertoire créé en pré-requis
  • Use https : pour ce test je ne tiens pas à configurer le site en https (création et configuration des certificats), on le désactive donc
  • Upload progress monitoring library [help] : voir en introduction, je n’ai pas installé ce qu’il faut pour cette fonctionnalité
  • Database username (required) : toujours pour des raisons de test rapide je ne crée pas d’utilisateur dédié à Filez, j’utilise donc mon root
  • Authentication method : c’est ici que l’on peut choisir d’interfacer Filez avec CAS
  • User profile source : je n’ai pas de LDAP j’utilise donc une base de donnée
  • Use the same configuration as Filez : même base et même méthode d’identification pour la base des utilisateurs que pour la base spécifique a filez
  • Table where username are stored (required), Database column name containing the username (required), Database column name containing the user,  password (required), Algorithm used to hash the password : à mettre en raccord avec la table des utilisateurs créé en pré-requis

Utilisation

On se loggue : 

On peut alors voir ses précédents upload et les modifier :

Et envoyer un autre fichier :

Lors de l’envoi on précise le fichier, la durée de disponibilité du fichier, un commentaire et éventuellement un mot de passe

Lorsque l’on accède à l’URL du fichier, on revoit tous les détails du fichier et le téléchargement commence :

Conclusion

J’aime beaucoup Filez, l’interface est clair, la plupart des fonctionnalités que j’attend sont présentes.

MAIS

  • la création des utilisateurs doit être faite à la main
  • les fichiers ne sont pas récupérables depuis le filesystem
  • 24Mo pour un dépôt de fichier !!

 

Sources :

Les commentaires sont fermés.