Maison >développement back-end >Tutoriel Python >Quelles bibliothèques Python offrent une prise en charge SFTP indépendante de la plate-forme ?

Quelles bibliothèques Python offrent une prise en charge SFTP indépendante de la plate-forme ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 23:52:28216parcourir

Which Python Libraries Provide Platform-Independent SFTP Support?

SFTP indépendant de la plate-forme avec Python

Le transfert de fichiers sécurisé (SFTP) est essentiel pour un échange de données sécurisé, mais trouver des bibliothèques Python qui le prennent en charge peut être un défi. Lorsque le codage en dur des informations d'identification des utilisateurs et des emplacements distants n'est pas une option, il est crucial d'explorer des solutions alternatives.

Paramiko est une bibliothèque Python populaire pour SFTP. Sa syntaxe est relativement simple, comme démontré ci-dessous :

<code class="python">import paramiko

host = "THEHOST.com"
port = 22
transport = paramiko.Transport((host, port))

password = "THEPASSWORD"
username = "THEUSERNAME"
transport.connect(username=username, password=password)

sftp = paramiko.SFTPClient.from_transport(transport)

import sys
path = './THETARGETDIRECTORY/' + sys.argv[1]
localpath = sys.argv[1]
sftp.put(localpath, path)

sftp.close()
transport.close()
print('Upload done.')</code>

Ce code télécharge un fichier sur un serveur SFTP distant à l'aide d'un hôte, d'un port, d'un nom d'utilisateur et d'un mot de passe codés en dur. Cependant, il est important de noter que le codage en dur des informations d'identification n'est pas considéré comme une bonne pratique et doit être évité autant que possible.

Twisted est une autre option pour SFTP en Python. Il s'agit d'une bibliothèque plus complexe mais offrant une gamme plus large de fonctionnalités. Voici un exemple d'utilisation de Twisted pour SFTP :

<code class="python">from twisted.conch.ssh import userauth, connection, channel, sftp

password = "THEPASSWORD"
username = "THEUSERNAME"
transport = connection.SSHClientFactory().buildProtocol('localhost', None)
transport.requestService(userauth.SSHUserAuthClientPassword(username, password))

sftp = channel.SSHChannel(transport)
sftp.request_sftp()

import sys
path = './THETARGETDIRECTORY/' + sys.argv[1]
localpath = sys.argv[1]
sftp.sendFile(localpath, path)

sftp.close()
transport.loseConnection()
print('Upload done.')</code>

Paramiko et Twisted peuvent tous deux faciliter les connexions SFTP indépendantes de la plate-forme en Python. Paramiko est plus simple à utiliser, tandis que Twisted offre des fonctionnalités plus avancées. Le choix entre les deux dépend des exigences spécifiques du projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn