¿Qué servidor HTTP o FTP ligero es bueno para la transferencia de archivos simple? [cerrado]


25

Esta pregunta es una continuación de ¿Cómo copiar archivos a una computadora no confiable? , como no parece haber una aplicación dedicada para este propósito, ahora estoy buscando un servidor http o ftp como alternativa. Más específicamente, estoy buscando un servidor liviano que sea utilizable para una simple transferencia de archivos de una sola vez entre computadoras. Con eso quiero decir que debería actuar como reemplazo de rsync / scp para obtener archivos de una computadora a otra, no como un servidor web clásico. Además debería:

  • correr en espacio de usuario
  • ser trivial para configurar (es decir, sin archivo de configuración, todo se puede hacer a través de la línea de comandos)
  • soporte nombre de usuario / contraseña
  • soporte de continuación de descargas
  • admite la exportación de archivos individuales en lugar de directorios completos

La respuesta de dbr a la pregunta anterior se acerca, pero por supuesto es solo un truco ad hoc que carece de muchas características útiles.


Simplemente use Apache2 más rápido que Python SimpleHTTPServer aproximadamente 4x.
o0omycomputero0o

Respuestas:


31

A menudo estoy usando este truco rápido de Python para servir un directorio a través de HTTP.

python -m SimpleHTTPServer &

servirá el directorio actual.

Por defecto, se une al puerto 8000.

Para elegir otro puerto:

python -m SimpleHTTPServer 9090 &

Si elige un puerto inferior a 1024 en * nix, es posible que necesite privilegios de root, de lo contrario, bind () fallará.


3
Realmente no estoy seguro de por qué esta pregunta se cerró. La pregunta y la respuesta fueron muy útiles.
merlin2011

8
O el equivalente de Python 3:python3 -m http.server
Eliran Malka

6

Alguien en SO me señaló a Woof . Un httpd mínimo en python con una interfaz optimizada solo para tales usos. En realidad, no cumple con todos sus requisitos, pero al permitirle especificar la cantidad de veces que se conectará, le permite usar el mensaje "¿Está listo? Estoy iniciando el servidor ahora". enfoque para asegurar la transferencia.

Para permitir que se descargue una (1) conexión en thisfileel puerto 8080, simplemente ejecute

$ woof thisfile

Es fácil.

Aquí está el original bastante abusado . Si te gusta, vota por Nate.


También funciona muy bien para "cargar" (en caso de que necesite un archivo de un usuario que no puede o no instalará un servidor)
golimar

3

Puede probar webfs que está disponible a través del repositorio de Ubuntu:

Webfs (también conocido como webfsd) es un servidor HTTP simple para contenido puramente estático. Puede usarlo para servir el contenido de un servidor FTP a través de HTTP, por ejemplo. También se puede usar para exportar rápidamente algunos archivos al iniciar un servidor httpd en unos segundos, sin editar primero los archivos de configuración.

Otra opción es HFS (Http File Server) , una aplicación de Windows que funciona bien a través de Wine .

HFS (Http File Server) es un software para compartir archivos que le permite enviar y recibir archivos. Puede limitar este intercambio a solo unos pocos amigos, o estar abierto a todo el mundo. HFS es diferente del uso compartido de archivos clásico porque no hay red. [...] Dado que en realidad es un servidor web, sus amigos pueden descargar archivos como si estuvieran descargando desde un sitio web utilizando un navegador web.


1
¿Qué pasa con los votos negativos aquí? El OP solicitó servidores http simples, y la gente los ha ofrecido. Entonces, cuál es el problema.
dmckee

HFS también funciona muy bien para "cargar" (en caso de que necesite un archivo de un usuario que no puede o no instalará un servidor)
golimar

1

Ignore si no está abierto a alternativas, pero el hecho de que esté dispuesto a instalar un servidor HTTP sin preferencias me muestra que desea hacer el trabajo de transferir un archivo más de lo que se hace:

¿Puedo recomendarle que instale un servidor FTP?

Le permitirá hacer casi todo lo que necesita y, por lo general, es muy fácil de configurar, incluso puede configurar el puerto para usar 80 si es un requisito.


1
Por supuesto, FTP también estaría bien, pero la mayoría de los servidores FTP que conozco no son exactamente livianos y vienen con un montón de equipaje extra feo que los hace inadecuados para transferencias de archivos simples (es decir, requieren derechos de root, cuentas en la máquina para acceso con contraseña) , manejo de directorio no flexible, etc.). Con Pure-FTPd ni siquiera pude descubrir cómo iniciarlo como usuario no root.
Grumbel

1
Convenido. Se llama Protocolo de transferencia de archivos por una razón. HTTP, por otro lado, es Protocolo de transferencia de hipertexto. Es probable que no esté interesado en HyperText en este momento.
Lee B

1
FTP no es una idea estúpida, pero ¿tiene alguna sugerencia para una que sea fácil de configurar como lo solicitó el OP?
dmckee

1
La ventaja de http es que cada computadora de uso general tiene un navegador web y el usuario se sentirá cómodo usándola. OK, es compatible con FTP también, pero si vas a utilizar un navegador web de todos modos ...
dmckee

2
Wil, no estamos hablando de servidores de uso general como Apache aquí. Estamos hablando de herramientas especiales y mínimas. Woof hace que chttpd parezca pesado .
dmckee

0

¿Puedo recomendar http://code.google.com/p/pyftpdlib/ ?
Es liviano, descargue la fuente y escriba un script de Python (solo copie la parte de inicio rápido en la página de inicio es suficiente, 5-6 líneas, establezca el nombre de usuario y la contraseña, el directorio de inicio, etc.)
Lo uso para uso personal Transferencia de archivos de PC a PC (en Ubuntu Hardy). Un problema conocido (y puedo soportarlo) es que no puede manejar bien Unicode (no ASCII).


0

La respuesta es sencilla: thttpd. Gana sin duda en rendimiento, uso de memoria y seguridad. Y por seguridad quiero decir que es seguro en virtud de un diseño competente y no hace nada estúpido, no es que tenga todo tipo de campanas y silbatos de "seguridad". También es casi óptimo con respecto al tamaño y la simplicidad.

Si necesita incluso más pequeño y más simple, BusyBox tiene un httpdapplet que también puede satisfacer sus necesidades.

No estoy seguro de si cumplen con algunos de sus requisitos adicionales, como servir archivos individuales, pero puede hacerlo con un contenedor que coloca enlaces simbólicos en la raíz http. Sin embargo, si hace esto con thttpd, tendrá que deshabilitar las restricciones de enlaces simbólicos.

(Sé que esta pregunta es antigua, pero es un resultado superior en Google y las respuestas existentes son todo menos ligeras).


2
thttpdsolía ser mi respuesta favorita también, pero fue eliminada de Debian, Ubuntu y RedHat en 2011 porque estaba "huérfana, tiene errores críticos de liberación y está muerta corriente arriba". No lo recomendaría más.
Poolie

0

También puede probar HFS, también llamado Servidor de archivos HTTP ( http://www.rejetto.com/hfs/ ) Si bien es una aplicación de Windows, se dice que funciona bien con WINE. Su mantenimiento muy bajo e incluso los principiantes completos que ni siquiera saben qué es un servidor de archivos podrán usarlo sin mucho esfuerzo. Admite la funcionalidad de arrastrar y soltar e incluso puede controlar qué direcciones IP pueden acceder a los archivos y admite cuentas de usuarios y control de velocidad de descarga.


1
¿Cómo responde eso a la pregunta? Sé más específico.
usuario 99572 está bien el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.