UploadTool : Mise en place d'un outil d'échange de fichiers via Apache

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Je cherchais pour la boite dans laquelle je bosse, un soft qui permet de faire du transfert de fichiers avec de l'authentification mais juste au niveau de l'upload. J'ai donc trouvé UploadTool.

2 Installation

Téléchargez donc l'archive upload.tar.gz 1.0 et décompressez la :

wget http://belnet.dl.sourceforge.net/sourceforge/uploadtool/upload.tar.gz
tar -xzvf upload.tar.gz

Ensuite, nous allons tout balancer dans notre apache, puis attribuer les bons droits :

mv upload /var/www
chown -Rf www-data. /var/www/upload

3 Configuration

Pour configurer la bête, c'est assez simple, il suffit d'aller sur l'url de votre site suivit d'upload. Ex : http://www.mydomain.com/upload.

Créez votre compte root puis les utilisateurs qui auront accès à l'upload.

3.1 Protections des dossiers pubs

Pour se protéger du listing des fichiers uploadés, je vous propose un petit redirecteur HTML

3.1.1 Patch d'amélioration

*** bin/common.php      2006-05-08 02:23:34.000000000 +0200
--- bin/common.php      2007-09-03 11:46:22.000000000 +0200
***************
*** 59,67 ****
--- 59,70 ----
                echo '<td class="report">File Name</td>';
                echo '<td class="report">Size</td>';
                echo '<td class="report">Date</td>';
+               echo '<td class="report">URL to give</td>';
                echo '</tr>';
                foreach ($files as $filename)
                {
+                       if ($filename !== "index.html")
+                       {                       
                        $url = filepath2url($cwd . "/" . $filename);
                        echo "<tr>";
                        echo "<td>";
***************
*** 78,84 ****
--- 81,91 ----
                        echo "<td>";
                        echo date ("Y-m-d H:i:s", filemtime($cwd . "/" . $filename));
                        echo "</td>";
+                       echo "<td>";
+                       echo "$url";
+                       echo "</td>";
                        echo "</tr>\n";
+                       }
                }
                echo '</table>';
        }

Voilà un patch que j'ai créer pour améliorer un peu l'interface. Pour l'appliquez, créer un fichier "upload.patch" que vous mettez dans votre dossier upload, puis exécutez cette commande :

patch -p0 < upload.patch

Admirez le résultat :-)

3.2 Limitations au niveau des uploads

Voici ce qu'il faut rajouter dans son VirtualHost au niveau d'Apache pour pouvoir limiter la taille des fichiers uploadés :

    <Directory />
      php_value max_execution_time 300
      php_value upload_max_filesize 40M
      php_value post_max_size 40M
    </Directory>
    LimitRequestBody 40000000