Bonjour,
je suis en train de créer un soft de connexion sftp grace à paramiko, cela fonctionne pas trop mal.
Maintenant j'essaie d'ajouter des options comme l'annulation du travail en cours.
Mais je ne vois pas comment faire ça proprement, actuellement je lance la commande de transfert dans un QThread, et lorsque j'annule le transfert, je ferme la connexion paramiko et en réouvre une autre... ça ne me parait vraiment pas terrible comme façon de faire...
J'utilise 2 connexions différentes, 1 pour me balader dans le serveur et une autre pour les transferts, c'est cette seconde que je ferme et réouvre.
ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Paramiko = {"Client" : paramiko.SSHClient(), "Client2" : paramiko.SSHClient(), "Transfert" : None, "Sftp" : None}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class ThreadTransfert(QThread): def __init__(self, parent=None): super(ThreadTransfert, self).__init__(parent) def run(self): .... if Direction == "from Local to Server": Paramiko["Transfert"].put(From, To) elif Direction == "from Server to Local": Paramiko["Transfert"].get(From, To)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ### Fermeture de la connexion sftp Paramiko["Transfert"].close() ### Reinitialisation de la variable Paramiko["Transfert"] = None # Connexion en sftp ### Reouverture d'un canal Paramiko["Transfert"] = Paramiko["Client2"].open_sftp() # Connexion en sftp
Ma 2e question est comment calculer le débit approximatif ?
Mon idée était de comparer la taille du fichier en cours de transfert, ça fonctionne mais le résultat n'a aucun rapport avec mon debit...
en gros je fais :
Mon débit est d'environ 110kbis/s mais la différence du fichier est en gros à 32kbits/s...?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 fichier_distant_1 = x bits sleep(1) fichier_distant_2 = x bits difference = fichier_distant_2 - fichier_distant_1
Comment peut on faire pour évaluer la vitesse ?
Merci pour vos idées et propositions.
Partager