Conexiones remotas (HTTP, FTP y SSH)
Cita con formato IEEE:
E. Bahit, "Conexiones remotas (HTTP, FTP y SSH)", in
Python Aplicado, 4th ed., EBRC Publisher, 2022, pp.
133-140.
Cita con formato APA 7:
Bahit, E. (2022). Conexiones remotas (HTTP, FTP y SSH). In
Python Aplicado (4th ed., pp. 133-140). EBRC Publisher.
Cita en línea:
(Bahit, 2022)
Python provee dos bibliotecas,http
yftplib
, para efectuar conexiones mediante los protocolos HTTP/HTTPS y FTP, respectivamente. Esta sección se enfoca en conexiones FTP.
Ir al apartado sobre conecciones HTTP(S).
Conexiones remotas vía FTP
La biblioteca ftplib
permite conexiones a través del
protocolo FTP.
Para crear una instancia FTP, dispone de las clases
FTP
y FTP_TLS
, la segunda, con soporte del
protocolo TLS (evolución de SSL). Si bien estas clases, como parámetros
opcionales, el host, el usuario y la clave (entre otros), a fin de
obtener un mejor control sobre las operaciones, estos datos serán
enviado mediante los métodos connect
y login
,
que serán abarcados adelante.
from ftplib import FTP ftp = FTP()
Para abrir la conexión se emplea el método
connect
, que como parámetros admite, entre otros, el host y
el puerto:
ftp.connect('algunhost.com', 21)
De ser necesario establecer el modo pasivo, se
dispone del método set_pasv
:
ftp.set_pasv(True)
La autenticación se realiza mediante el método
login
, quien recibe por parámetros, usuario y contraseña,
respectivamente:
ftp.login('algunusuario', 'clave')
Para cerrar una conexión puede utilizarse el método
quit
. Esto cierra la conexión de ambos lados siempre que
el servidor lo soporte y no retorne un error. En caso de que así sea, se
llamará al método close
, el cual cierra la conexión
unilateralmente.
ftp.quit()
Otros métodos disponibles se citan a continuación:
Acción | Método |
---|---|
Directorios | |
Listar directorios | dir() dir('ruta/a/listar') |
Crear un directorio | mkd('ruta/a/nuevo-dir') |
Moverse a un directorio | cwd('ruta/a/algun-dir') |
Eliminar un directorio | rmd('ruta/a/dir-a-borrar') |
Obtener directorio actual | pwd() |
Archivos | |
Recuperar un archivo remoto | retrbinary( 'RETR origen', open('/ruta/destino', 'w').write) |
Enviar un archivo local | storbinary( 'STOR destino/remoto.txt', open('/origen/local.txt', 'r')) |
Eliminar un archivo | delete('archivo/a/eliminar') |
Renombrar (mover) un archivo | rename('origen', 'destino') |
Cuando los modos «w» y «r» aparecen en negritas, significa que para archivos binarios debe agregarse «b» al modo. |
Solicitando la contraseña por línea de comandos estilo Linux
La biblioteca getpass
permite solicitar mediante
input
, una contraseña al estilo GNU/Linux, para evitar
tener que trabajar con la contraseña en crudo en el código
fuente...