Maison >développement back-end >Tutoriel Python >Quelles bibliothèques Python offrent une prise en charge SFTP indépendante de la plate-forme ?
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!