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
Libérer: 2024-10-22 23:52:28
original
245 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal