¿Es posible tener un comando de una línea en Python para hacer un servidor ftp simple? Me gustaría poder hacer esto como una forma rápida y temporal de transferir archivos a una caja de Linux sin tener que instalar un servidor ftp. Preferiblemente una forma de usar bibliotecas de Python integradas para que no haya nada adicional que instalar.
python
ftp
ftp-server
zio
fuente
fuente
-o Ciphers=arcfour
, es decir,sshfs $REMOTEHOST:$DIRECTORY $MOUNTPOINT -o Ciphers=arcfour
y copie, mueva, cambie el nombre, administre sus archivos en su sistema de archivos. sshfs también está disponible para Mac OSX.Respuestas:
Ejemplo de trenzado obligatorio :
Y probablemente útil:
fuente
Echa un vistazo a pyftpdlib de Giampaolo Rodola. Es uno de los mejores servidores ftp que existen para Python. Se usa en Google Chrome (su navegador) y Bazar (un sistema de control de versiones). Es la implementación más completa en Python para RFC-959 (también conocida como: especificación de implementación del servidor FTP).
Desde la línea de comandos:
Alternativamente 'my_server.py':
Hay más ejemplos en el sitio web si quieres algo más complicado.
Para obtener una lista de opciones de la línea de comandos:
Tenga en cuenta que si desea anular o utilizar un puerto ftp estándar, necesitará privilegios de administrador (por ejemplo, sudo).
fuente
>>> from pyftpdlib import ftpserver
:pyftpdlib\ftpserver.py:54: DeprecationWarning: pyftpdlib.ftpserver module is deprecated
¿Por qué no usa en su lugar un servidor HTTP de una línea ?
servirá el contenido del directorio de trabajo actual a través de HTTP en el puerto 8000.
Si usa Python 3, debería escribir
Consulte los documentos del módulo SimpleHTTPServer para 2.xy los documentos http.server para 3.x.
Por cierto, en ambos casos el parámetro del puerto es opcional.
fuente
Todas las respuestas anteriores suponían que su distribución de Python tendría algunas bibliotecas de terceros para lograr el objetivo de "una línea de python ftpd", pero ese no es el caso de lo que preguntaba @zio. Además, SimpleHTTPServer implica un navegador web para descargar archivos, no es lo suficientemente rápido.
Python no puede hacer ftpd por sí mismo, pero se puede usar netcat ,
nc
:nc
es básicamente una herramienta incorporada de cualquier sistema tipo UNIX (incluso sistemas embebidos), por lo que es perfecta para " una forma rápida y temporal de transferir archivos ".Paso 1, en el lado del receptor, ejecute:
esto escuchará en el puerto 12345, esperando datos.
Paso 2, en el lado del remitente:
También puede poner
pv
en el medio para monitorear el progreso de la transferencia:Una vez finalizada la transferencia, ambos lados
nc
se cerrarán automáticamente y se completará el trabajo.fuente
tar
ync
disponibles. ¿Y si son ventanas?Para usuarios de pyftpdlib. Encontré esto en el sitio web de pyftpdlib. Esto crea un ftp anónimo con acceso de escritura a su sistema de archivos, así que utilícelo con el debido cuidado. Hay más funciones disponibles debajo del capó para una mayor seguridad, así que solo mira:
Podría ser útil para aquellos que intentaron usar el método obsoleto anterior.
sudo python -m pyftpdlib.ftpserver
fuente
sudo
si instala en un venvpip3 install pyftpdlib
ypython3 -m pyftpdlib -w
. funcionó como un encanto para mí.Instalar en pc:
Entonces el código:
Profundizar:
http://twistedmatrix.com/documents/current/core/examples/
fuente
La solución más simple será utilizar la biblioteca pyftpd. Esta biblioteca le permite girar el servidor FTP de Python en una línea. Sin embargo, no viene instalado por defecto, pero podemos instalarlo usando el comando apt simple
ahora desde el directorio que desea servir, simplemente ejecute el módulo de método
fuente
No conozco un servidor FTP de una línea, pero si lo sabe
Ejecutará un servidor HTTP en 0.0.0.0:8000, sirviendo archivos del directorio actual. Si está buscando una forma de sacar rápidamente archivos de una caja de Linux con un navegador web, no puede superarlo.
fuente
fuente