Articles plus anciens

Rappel du besoin :

Avoir sur mon Dockstar un dépôt de fichier, un endroit ou je (ou des personnes de confiance) puisse facilement uploader des fichiers et avoir un lien vers ce fichier.

Logiciel testés avec les liens vers les articles :

Autres logiciels disponibles (non testés et qui ne le seront probablement pas)

  • BigFileSharing : pas de mise à jour depuis 2008, est prvu pour fonctionner avec un serveur CAS et/ou LDAP (bien qu’une authentification par htaccess semble en théorie possible, modification cvs de 2010), testé mais je n’ai pas réussi a afficher autre chose que cette page :

  • F*ex : non testé car en PERL
  • Droopy : déjà testé (mais non décrit) simple script Python, le plus simple et le plus léger à mettre en oeuvre (aucune installation)
  • xtraupload : commencé à tester sans succès (peut être réessaierai-je ?)

 

Récapitulatif :

Application Jyraphe FileZ KoLoad
Dernière mise à jour

Juin 2009, il existe une version 0.6 alpha de janvier 2010 et un fork sur github de mars 2011

Oct 2011 Nov 2011
Installation Traduction Fr pas simple, sinon facile Assez difficile (création base et utilisateur manuel), beaucoup d’options Facile
Traduit Oui Oui Oui
Authentification Non (contournement via .htaccess) Oui obligatoire pour l’upload, pas pour le téléchargement Optionnel pour l’upload, Non pour le téléchargement
Protection des fichiers par mot de passe Oui Oui Non
Purge automatique des fichiers Non Oui Non
Limitation du nombre de téléchargement Oui (téléchargement unique) Non Non
Durée de validité du téléchargement Oui (1 min / jour/ semaine / mois) Oui (1 à 20j) Non
Aspect Correct Beau Beau
Divers Pas de liste des fichiers existant Lourd (24Mo) !!
Application OpenUpload cFTP
Dernière mise à jour Nov 2010 Oct 2011
Installation Difficile (beaucoup d’options, de paramétrage) Moyen
Traduit Oui Oui
Authentification Oui ultra-paramétrable Oui pour l’upload et le téléchargement
Protection des fichiers par mot de passe Oui Non
Purge automatique des fichiers ? Non
Limitation du nombre de téléchargement Non Non
Durée de validité du téléchargement Non Non
Aspect Moche Beau
Divers Très paramétrable, mais compliqué Usage très spécifique, les fichiers sont rattachés à une notion de client

Promis c’est le dernier (enfin normalement) dépôt de fichier que je test, il s’agit cette fois ci de cFTP

Ce dernier est un peu en marge des autre car clairement orienté professionnel, les fichiers uploadés le sont en effet à destination d’un client particulier.

 

Pré-requis installation

On doit créer une base dédiée, pour cela on se connecte à MySQL :

mysql -u root -p

Puis on lance l’ordre SQL (à adapter):

CREATE DATABASE cftp;

 

Installation

Télécharger l’archive, la décompresser dans l’arborescence de son serveur Web, fixer les droits utilisateur (www-data propriétaire des fichiers) et configurer son serveur Web

On pourra ensuite télécharger la traduction française, deziper le fichier et copier le fichier vars.php dans includes/

Editer le fichier includes/sys.vars.php et mettre à jour les informatons de connexion SQL

define('DB_NAME', 'cftp'); // database name
define('DB_HOST', 'localhost'); // database host (most of the times its localhost)
define('DB_USER', 'root'); // user related to cftp's database
define('DB_PASSWORD', ''); // the password for that userfsf

Puis on va à l’URL de cFTP dans le « sous-répertoire » install :

http://www.domaine.fr/cftp/install

Les données à renseigner se passent de commentaires (paramétrage fait avant d’avoir installé la traduction française) :

Sur l’écran suivant on peut directement se logguer.

 

 

Utilisation

L’écran de login sépare l’accès administrateur de client :

La page d’accueil (loggué en administrateur)

 

L’upload d’un fichier est obligatoirement rattaché à un client il faut donc en créer un :

Puis on peut procéder à l’upload :

 

Le client quand il se logguera verra alors le fichier :

On peut accéder à cette même interface du client en cliquant sur la loupe dans l’administration des clients :

 

Conclusion

Usage spécifique (notion de client), propre, beau, léger (600 ko)

Encore un dépôt de fichier : OpenUpload

 

Installation

Après avoir téléchargé l’archive, l’avoir décompressé dans l’arborescence de son serveur Web, fixé les droits utilisateur (www-data propriétaire des fichiers) et configuré son serveur Web (pas de ruse)

On va à l’adresse d’openupload et l’installeur se lance et va nous guider au travers de 9 étapes :

Etape 1 : vérification des pré-requis

Les croix rouges ne posent pas de problème, il faut avoir au moins le support d’une base de données (MySQL dans mon cas) et il n’est pas nécessaire d’avoir un système de barre de progression.

 

Etape 2 : chemins

Le premier chemin est le chemin d’openupload sur le système de fichier, ce répertoire contient les librairies utilisé par openupload, il est envisageable (conseillé) de déplacer ce répertoire de l’arborescence web et de ne garder que le sous-répertoire www (qui contient l’application openupload proprement dite) dans cette dernière

WWW server URL est l’URL de base pour accéder à votre serveur

WWW root path est l’alias web de l’application openupload, celle que vous avez configuré dans votre serveur web.

Enfin le dernier chemin est le chemin dans lequel les fichiers uploadés seront stockés. Ce dernier doit contenir un sous-répertoire tmp et l’utilisateur exécutant le serveur web doit y avoir les droits d’écriture.

 

Etape 3-4 : base de données

 

Le programme d’installation permet la création de la base et de son utilisateur dédié ce qui est pratique (dans mon cas de test je n’ai pas créé d’utilisateur dédié mais utilisé mon root)

La dernière option permet d’indiquer le niveau des données à insérer.

  • No : Rien n’est fait niveau base de données
  • Structure only : seules les structures de table sont créées, aucune données n’est inséré, il vous faudra le faire à la main avant de pouvoir ne serait ce que vous connecter à openupload (sinon message pas clair indiquant que votre IP est blacklistée, banned)
  • Base system data : les groupes sont créés, l’utilisateur admin est créé et les droits de base (pour l’administrateur) sont créés

Les autres options permettent d’insérer les données visant à faire faire fonctionner openupload selon 1 des 4 modes par défaut :

  • Public mode : le site est complètement public. Les utilisateurs n’ont pas besoin d’être enregistrés pour téléchargé ni même uploader (fonctionnement de Jyraphe)
  • Service mode : idem public mais les utilisateurs enregistrés ont plus de fonctions (moins de limitation, protection de leur fichiers par mot de passe, envoi d’email…)
  • Restricted mode : Téléchargement public mais nécessité d’être connecté pour uploader
  • Private mode : nécessité d’être connecté pour télécharger et uploader (fonctionnement de FileZ)

A noter que ces différents modes d’insertion sont concrétisés par l’exécution d’un ou plusieurs fichier SQL présents dans /sql/mysql/

 

Etape 5 : options de l’application

Pas grand chose à dire, je n’ai rien modifié à part le renseignement des adresses email (obligatoires)

 

Etape 6 : utilisateur

On indique ici les nom et mot de passe de l’administrateur et des groupes pré-définis.

A noter que ces données ne seront insérés que si vous avez sélectionné au moins l’insertion des données de base (étapes 3-4)

 

Etape 7 : plugins

Sélection des plugins a installer, je n’ai pas pris le temps d’étudier la portée et les fonctions de ces plugins.

 

Etape 8 : installation de la base

L’installation proprement dite débute par la base de données (passage des scripts présents sous /sql/mysql/

 

 

 

Etape 9 : sauvegarde configuration

Puis les choix sont sauvegardés dans le fichier www/config.inc.php

 

Utilisation

On peut alors se connecter sur openupload (pas forcement obligatoire si vous avez configuré openupload en mode publique)

On arrive arrive sur la page d’upload :

Les options d’upload (fonction des droits et des plugins activés)

On peut aussi accéder à la liste de ses fichiers :

 

 

Enfin en tant qu’administrateur, on a accès à différentes pages de configuration :

Liste de la totalité des fichiers uploadés (tout utilisateur) avec possibilité de les supprimer et de bannir les IP des uploadeur

Liste des utilisateurs :

Des groupes :

Et des droits par groupe, sous la forme d’ACL : très puissant/configurable mais complexe et pas documenté

Enfin information intéressante opeupload log les accès et les actions des différents utilisateurs (niveau de log paramétré en étape 5)

 

Conclusion

Openupload semble la solution ultime, selon les droits appliqués on peut lui faire prendre différents comportement (publique ou protégé + des étapes intermédiaires) répondant ainsi à la majorité des besoins

L’application est relativement légère (3Mo)

Les fichiers ne sont pas accessibles depuis le disque (noms encodés)

MAIS par contre le thème par défaut (le seul fournis) est moche, très années 90….

 

Sources :

Je continue sur ma lancée du test des dépôts de fichiers.

Le suivant listé dans Applications libres d’upload de fichiers volumineux et testé est KoLoad, cependant le lien indiqué pour la page du projet n’existe plus.

Le code peut être récupéré à cette adresse : KOLoad – CodingTeam

L’installation est ultra-simple, 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) et on configure ensuite son serveur Web (pas de ruse).

On peut ensuite aller sur la page du projet :

On arrive directement sur la liste des fichiers disponibles

Si on veut envoyer un fichier on clique sur le lien en bas à gauche et on choisi son fichier dans la popup qui s’ouvre :

On choisi son fichier et on l’envoi :

Il existe 2-3 configurations possibles, faisable dans le fichier conf.php à la racine.

define('VERSION', '1.5');               // version of KOLoad
define('LANG', 'fr');                   // language, available : en, fr, de, es, it
define('SITENAME', 'KOLoad');           // type your site name here
define('UPLOAD', 'true');               // allow upload module, type 'false' to disable and 'true' to enable
define('DELETE', 'true');               // allow delete module, type 'false' to disable and 'true' to enable
define('RENAME', 'true');               // allow rename module, type 'false' to disable and 'true' to enable
define('PASSWORD', '');                 // enable the login fonction if there's a password, else, koload is public
define('COLOURS', 'blue');              // change the colours of KOLoad, available : blue, red, green, grey
ob_start('ob_gzhandler');               // force gzip compression (PHP), delete this line to disable

Notamment la possibilité de mettre un mot de passe, ce qui se traduit par cette page dès lors que la fonctionnalité est activée :

Pour accéder à la liste des fichiers et à l’upload il faut alors saisir le mot de passe choisi.

Par contre ce mot de passe ne protégera pas le téléchargement des fichiers pour peu que vous connaissez l’URL.

Concernant l’URL des fichiers uploadés, il s’agit simplement du nom du fichier, il n’ya pas d’encodage, de caractère aléatoire, etc, ainsi l’URL de téléchargement du fichier exemple fournis par défaut à l’installation de Koload est :

http://www.mon_domaine.fr/koload/files/example.txt

 

Conclusion :

Simple (pas de base, d’URL rewriting, etc), léger, plutôt beau

Pas de notion de date de validité du fichier (pas vraiment nécessaire), pas de mot de passe pour le téléchargement des fichiers, nom des fichiers non protégé, sécurité en règle générale (est ce vraiment sécurisé ?)

 

Sources :

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 :