Saltar al contenido

Módulo de FTP seguro de Python – PythonForBeginners.com

Visión general

En la publicación anterior cubrimos el módulo ftplib en Python, que puede leer
más sobre aquí. En esta publicación cubriremos el módulo pysftp.

SFTP (Protocolo seguro de transferencia de archivos) se utiliza para intercambiar archivos de forma segura
a través de Internet.

¿Qué es?

pysftp es un módulo sftp fácil de usar que utiliza paramiko y pycrypto.

Proporciona una interfaz sencilla para sftp.

Algunas de las características son:
Maneja con gracia los archivos de clave privada RSA y DSS automáticamente

Admite archivos de clave privada encriptados.

El registro ahora se puede habilitar / deshabilitar

¿Por qué debería usarlo?

Cuando desee intercambiar archivos de forma segura a través de Internet.

¿Como lo instalo?

pysftp está listado en PyPi y se puede instalar usando pip.

# Search for pysftp
pip search pysftp

pysftp                    # - A friendly face on SFTP

#Install pysftp
pip install pysftp

¿Como lo uso?

Usar pysftp es fácil y mostraremos algunos ejemplos sobre cómo puede usarlo

Listar un directorio remoto

Para conectarnos a nuestro servidor FTP, primero tenemos que importar el módulo pysftp y
especifique (si corresponde) las credenciales del servidor, el nombre de usuario y la contraseña.

Después de ejecutar este programa, debería ver todos los archivos y directorios de
el directorio actual de su servidor FTP.

import pysftp

srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")

# Get the directory and file listing
data = srv.listdir()

# Closes the connection
srv.close()

# Prints out the directories and files, line by line
for i in data:
    print i

Parámetros de conexión

Los argumentos que no se dan se adivinan del entorno.

anfitrión

El nombre de host de la máquina remota.

nombre de usuario

Su nombre de usuario en la máquina remota. (Ninguno)

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

llave privada

Su archivo de clave privada. (Ninguno)

contraseña

Su contraseña en la máquina remota. (Ninguna)

Puerto

El puerto SSH de la máquina remota. (22)

private_key_pass

contraseña para usar si su clave_privada está encriptada (Ninguna)

Iniciar sesión

registrar detalles de conexión / protocolo de enlace (falso)

Descargar / cargar un archivo remoto

Como en el ejemplo anterior, primero importamos el módulo pysftp y especificamos
(si corresponde) credenciales de servidor, nombre de usuario y contraseña.

También importamos el módulo sys, ya que queremos que el usuario especifique el archivo a
descargar cargar.

import pysftp
import sys

# Defines the name of the file for download / upload
remote_file = sys.argv[1]

srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")

# Download the file from the remote server
srv.get(remote_file)

# To upload the file, simple replace get with put. 
srv.put(remote_file)

# Closes the connection
srv.close()

Cual es el siguiente paso?

Juega con el guión, cambia las cosas y mira qué pasa.

Intente agregarle manejo de errores. ¿Qué sucede si no se pasa ningún argumento?

Agregue algo de interacción al programa solicitando información.

Fuentes

https://code.google.com/p/pysftp/
http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.