pysftp contra Paramiko

Resuelto Jorjani asked hace 6 años • 1 respuestas

Tengo un requisito simple para colocar un archivo en un servidor SFTP. Encontré bibliotecas pysftp y Paramiko que parecen permitirme esto y desarrollé una aplicación simple usando Paramiko, pero no puedo encontrar una fuente adecuada que compare las dos para poder decidir cuál puedo/debería usar. ¿Cuáles son los pros y los contras de cada uno?

Jorjani avatar Jan 25 '18 10:01 Jorjani
Aceptado

pysftp es un contenedor de Paramiko con una interfaz más parecida a Python.

La interfaz pysftp no expone todas las características de Paramiko. Por otro lado, pysftp implementa más funciones de alto nivel además de Paramiko, en particular transferencias de archivos recursivas.


  • pysftp no se ha actualizado desde 2016, por lo que parece un proyecto abandonado. También tiene algunos problemas importantes en su última versión que nunca se solucionaron. Especialmente cuando se utilizan en Windows, las transferencias recursivas no funcionan. Entonces, en Windows, pysftp no tiene ninguna ventaja significativa sobre Paramiko (mantenido).

    • Python pysftp put_r no funciona en Windows
    • Python pysftp get_r de Linux funciona bien en Linux pero no en Windows
    • Advertencia "Error al cargar HostKeys" al conectarse al servidor SFTP con pysftp
    • pysftp sólo admite claves privadas RSA y DSA. Paramiko admite incluso claves Ed25519 y ECDSA.
  • Si no tiene necesidades sofisticadas de bajo nivel (como métodos inusuales para verificar la clave del host , servidores proxy , autenticación interactiva avanzada del teclado , configuración de un tiempo de espera , etc.), puede ser más fácil trabajar con pysftp. Por otro lado, como pysftp parece muerto, probablemente no sea una buena idea empezar un nuevo desarrollo con él.

  • Si necesita funciones de bajo nivel, utilice Paramiko.

  • Si necesita funciones de bajo nivel de Paramiko y funciones de alto nivel de pysftp, use Paramiko y verifique el código de pysftp para conocer las funciones de alto nivel. Alternativamente, en mis respuestas a:

    • Python pysftp put_r no funciona en Windows
    • Python pysftp get_r de Linux funciona bien en Linux pero no en Windows
  • Puede acceder a algunas funciones de Paramiko no expuestas en pysftp utilizando pysftp Connection.sftp_client, que devuelve el objeto ParamikoSFTPClient subyacente . Para ver un ejemplo, consulte pysftp: Cómo actualizar la fecha de la última modificación .

Martin Prikryl avatar Jan 25 '2018 07:01 Martin Prikryl