2009-05-18 11 views
5

Je suis dans la phase de conception d'un service de téléchargement de fichiers qui permet aux utilisateurs de télécharger de très gros fichiers zip sur notre serveur ainsi que met à jour notre base de données avec les données. Puisque les fichiers sont volumineux (environ 300 Mo), nous voulons permettre à l'utilisateur de limiter la quantité de bande passante qu'il veut utiliser pour le téléchargement. Ils devraient également être en mesure de mettre en pause et de reprendre le transfert, et il devrait récupérer à partir d'un redémarrage du système. L'utilisateur doit également être authentifié dans notre base de données MSSQL pour s'assurer qu'il est autorisé à télécharger le fichier et apporter des modifications à notre base de données. Ma question est la suivante: quelle est la meilleure technologie pour ce faire? Nous aimerions minimiser la quantité de développement requise, mais la seule chose à laquelle je peux penser maintenant qui nous permettrait de créer une application client et serveur à partir de zéro dans quelque chose comme python, java ou C#. Existe-t-il une technologie existante qui nous permettra de faire cela?Résolu téléchargement de fichier

Répondre

4

Il ya plusieurs contrôles de téléchargement pour cela, vous devriez être en mesure de Google. Il y en a quelques-uns sur ce download page.

Un autre travail consiste à demander à vos clients d'installer un plugin Firefox FTP ou d'écrire un plugin Firefox, mais le FTP est de loin le moyen le plus simple de démarrer.

+2

Ce commentaire m'amène à trouver le module pyftpdlib qui semble nous permettre d'étendre un serveur ftp pour faire toutes sortes de choses. http://code.google.com/p/pyftpdlib/ –

4

Qu'est-ce qui ne va pas avec FTP? Le protocole prend en charge la réutilisabilité et il y a beaucoup, beaucoup de clients.

+0

Une fois les données téléchargées sur le serveur, nous aurions besoin d'exécuter un script d'une certaine forme qui ajouterait une ligne dans une table DB, FTP peut-il exécuter des commandes shell sur le serveur? –

+5

Si vous avez besoin de quelque chose exécuté après le téléchargement, vous pouvez implémenter le serveur FTP dans le cadre de votre application dans la langue que vous voulez. Python a ftplib. Vous pouvez également regarder le répertoire de téléchargement des événements de fichier pour déclencher des scripts. – JimB

0

Côté client, flash; Côté serveur, peu importe (cela ne ferait aucune différence).

Aucune technologie existante (sauf pour l'utilisation de FTP ou autre).

0

Je trouve 2 autres possibilités

  • Microsoft Background Intelligent Transfer Service (BITS):

    Has: et télécharger, des fichiers volumineux, crypté (vis https), peut être repris (même la reprise automatique tant que l'utilisateur est connecté), pause et reprise manuelle, authentification (via https à nouveau), wrapper pour .NET, priorité de premier plan ou de fond, ...

    Non: limitation de bande passante, la vérification des fichiers (seulement la taille du fichier), la compression

  • rsync:

    a-t-: transfert unidirectionnel, des fichiers volumineux, la reprise des téléchargements partiels (et pause par arrêt), la vérification, le chiffrement (via ssh, stunnel), compression, bibliothèque utilisable c (librsync par Martin Pool [1], [2])

    Non : Bonne fenêtres compability (uniquement via Cygwin ou cwRsync), commercialement utilisable (GPL)

Tout le monde a trouvé quelque chose d'autre en C#?

0

Je suis surpris que personne n'a mentionné les fichiers torrent. Ils peuvent également être empaquetés dans un script qui déclenche alors quelque chose à exécuter.

Questions connexes