Quel serveur HTTP ou FTP léger convient au transfert de fichiers simple? [fermé]

25

Cette question fait suite à Comment copier des fichiers sur un ordinateur non fiable? , car il ne semble pas y avoir d'application dédiée à cet effet, je recherche maintenant un serveur http ou ftp comme alternative. Plus précisément, je recherche un serveur léger utilisable pour un simple transfert de fichiers unique entre ordinateurs. J'entends par là qu'il devrait agir comme un remplacement rsync / scp pour obtenir des fichiers d'un ordinateur à un autre, pas comme un serveur Web classique. En outre, il devrait:

  • exécuter dans l'espace utilisateur
  • être trivial à configurer (ie pas de fichier de configuration, tout est faisable via la ligne de commande)
  • nom d'utilisateur / mot de passe
  • soutenir la poursuite des téléchargements
  • prendre en charge l'exportation de fichiers uniques au lieu de répertoires entiers

La réponse de dbr à la question précédente se rapproche, mais n'est bien sûr qu'un hack ad hoc qui manque de nombreuses fonctionnalités utiles.

Grumbel
la source
Utilisez simplement Apache2 plus rapidement que python SimpleHTTPServer environ 4x.
o0omycomputero0o

Réponses:

31

J'utilise souvent ce hack Python rapide pour servir un répertoire sur HTTP.

python -m SimpleHTTPServer &

servira le répertoire actuel.

Par défaut, il se lie au port 8000.

Pour choisir un autre port:

python -m SimpleHTTPServer 9090 &

Si vous choisissez un port inférieur à 1024 sur * nix, vous pourriez avoir besoin des privilèges root, sinon bind () échouera.

geek
la source
3
Je ne sais vraiment pas pourquoi cette question a été close. La question et la réponse ont toutes deux été très utiles.
merlin2011
8
Ou l'équivalent Python 3:python3 -m http.server
Eliran Malka
6

Quelqu'un sur SO m'a montré Woof . Un httpd minimal en python avec une interface optimisée uniquement pour de telles utilisations. Il ne répond pas réellement à toutes vos exigences, mais en vous permettant de spécifier le nombre de fois qu'il se connectera, il vous permet d'utiliser le "Êtes-vous prêt? Je démarre le serveur maintenant." pour sécuriser le transfert.

Pour autoriser thisfilele téléchargement d'une (1) connexion sur le port 8080, il vous suffit d'exécuter

$ woof thisfile

C'est si facile.

Voici l'original plutôt abusé . Si vous l'aimez, allez voter pour Nate.

dmckee
la source
Fonctionne également très bien pour le "téléchargement" (dans le cas où vous avez besoin d'un fichier d'un utilisateur qui ne peut pas ou ne veut pas installer un serveur lui-même)
golimar
3

Vous pouvez essayer webfs qui est disponible via le référentiel Ubuntu:

Webfs (alias webfsd) est un simple serveur HTTP pour le contenu purement statique. Vous pouvez l'utiliser pour servir le contenu d'un serveur FTP via HTTP, par exemple. Il peut également être utilisé pour exporter rapidement certains fichiers en démarrant un serveur httpd en quelques secondes, sans modifier d'abord les fichiers de configuration.

Une autre option est HFS (Http File Server) , une application Windows qui fonctionne bien via Wine .

HFS (Http File Server) est un logiciel de partage de fichiers qui vous permet d'envoyer et de recevoir des fichiers. Vous pouvez limiter ce partage à quelques amis ou être ouvert au monde entier. HFS est différent du partage de fichiers classique car il n'y a pas de réseau. [...] Puisqu'il s'agit en fait d'un serveur Web, vos amis peuvent télécharger des fichiers comme s'ils téléchargeaient à partir d'un site Web à l'aide d'un navigateur Web.

nagul
la source
1
Qu'en est-il des votes négatifs ici? L'OP a demandé de simples serveurs http, et les gens les ont proposés. Alors quel est le problème.
dmckee
HFS fonctionne également très bien pour le "téléchargement" (dans le cas où vous avez besoin d'un fichier d'un utilisateur qui ne peut pas ou ne veut pas installer un serveur lui-même)
golimar
1

Veuillez ignorer si vous n'êtes pas ouvert à des alternatives, mais le fait que vous êtes prêt à installer un serveur HTTP sans préférences me montre que vous voulez que le transfert de fichiers soit plus efficace que la façon dont il est fait -

Puis-je vous recommander d'installer un serveur FTP?

Il vous permettra de faire à peu près tout ce dont vous avez besoin et est généralement très facile à installer, vous pouvez même configurer le port pour utiliser 80 si c'est une exigence.

William Hilsum
la source
1
Le FTP serait bien sûr très bien aussi, mais la plupart des serveurs FTP que je connais ne sont pas exactement légers et viennent avec beaucoup de bagages supplémentaires laids qui les rendent impropres à de simples transferts de fichiers uniques (c'est-à-dire nécessitent des droits root, des comptes sur la machine pour l'accès par mot de passe) , gestion non flexible des répertoires, etc.). Avec Pure-FTPd, je ne pouvais même pas comprendre comment le démarrer en tant qu'utilisateur non root.
Grumbel
1
D'accord. Cela s'appelle File Transfer Protocol pour une raison. HTTP, d'autre part, est le protocole de transfert HyperText. Vous n'êtes probablement pas intéressé par HyperText en ce moment.
Lee B
1
Le FTP n'est pas une idée stupide, mais avez-vous une suggestion pour celui qui est une tourbière simple à configurer comme l'OP l'a demandé?
dmckee
1
L'avantage de http est que chaque ordinateur à usage général possède un navigateur Web et que l'utilisateur sera à l'aise de l'utiliser. OK, il prend également en charge ftp, mais si vous allez utiliser un navigateur Web de toute façon ...
dmckee
2
Wil, nous ne parlons pas ici de serveurs à usage général comme Apache. Nous parlons d'outils spéciaux à usage minimal. Woof rend chttpd lourd .
dmckee
0

Puis-je recommander http://code.google.com/p/pyftpdlib/ ?
C'est léger, téléchargez la source et écrivez un script Python (il suffit de copier la partie de démarrage rapide sur la page d'accueil suffit, 5-6 lignes, définir le nom d'utilisateur et le mot de passe, le répertoire personnel, etc.)
Je l'utilise à des fins personnelles transfert de fichiers pc à pc (sur Ubuntu Hardy). un problème connu (et je peux le supporter) est qu'il ne peut pas bien gérer Unicode (non-ASCII).

sunqiang
la source
0

La réponse est simple: thttpd. Il gagne haut la main en termes de performances, d'utilisation de la mémoire et de sécurité. Et par sécurité, je veux dire qu'il est sécurisé grâce à une conception compétente et ne fait rien de stupide, pas qu'il ait toutes sortes de cloches et de sifflets de «sécurité». Il est également presque optimal en termes de taille et de simplicité.

Si vous avez besoin encore plus petit et plus simple, BusyBox a une httpdapplet qui pourrait également répondre à vos besoins.

Je ne suis pas sûr qu'ils répondent à certaines de vos exigences plus off comme la diffusion de fichiers uniques, mais vous pouvez le faire avec un wrapper qui place des liens symboliques dans la racine http. Si vous faites cela avec thttpd, cependant, vous devrez désactiver les restrictions de lien symbolique.

(Je sais que cette question est ancienne, mais c'est un résultat de premier plan sur Google et les réponses existantes sont tout sauf légères.)

R ..
la source
2
thttpdJ'étais aussi ma réponse préférée, mais elle a été supprimée de Debian, Ubuntu et RedHat en 2011 car elle était "orpheline, a des bogues critiques pour la publication et est morte en amont". Je ne le recommanderais plus.
poolie
0

Vous pouvez également essayer HFS également appelé serveur de fichiers HTTP ( http://www.rejetto.com/hfs/ ). Bien qu'il s'agisse d'une application Windows, elle fonctionne bien avec WINE. Sa maintenance très faible et même les novices complets qui ne savent même pas ce qu'est un serveur de fichiers pourront l'utiliser sans trop d'effort. Il prend en charge la fonctionnalité de glisser-déposer et vous pouvez même contrôler quelles adresses IP peuvent accéder aux fichiers et prend en charge les comptes d'utilisateurs et le contrôle de la vitesse de téléchargement.

Tenacious D
la source
1
Comment cela répond-il à la question? Sois plus précis.
utilisateur 99572 va bien