Wie kann ich eine Datei über XMPP mit Python übertragen?

Ich benutze xmpppy Bibliothek für meine Jabber Remote Administration Bot, aber ich kann nicht finden, wie man eine Datei sendet / empfängt und sie in dem angegebenen Verzeichnis speichert. Die Dokumentation ist schlecht und es gibt keine Beispiele, aber ich möchte es wirklich machen. Kann jemand irgendwelche Beispiele oder irgendwelche Links darüber zeigen? Oder vielleicht sollte ich eine alternative xmpp Bindungen verwenden?

  • Wie stelle ich einen Jabber-Status mit python-xmpp ein?
  • Senden Sie eine Facebook-Nachricht mit XMPP mit Access Tokens in Python
  • Python xmpp jabber Client in Tornado Web-Anwendung
  • Verweis auf eine derzeit offene XMPP-Verbindung aus einem anderen Python-Skript in einem Django-Server vorhanden
  • XMPP Server in Python
  • Python xmpppy Client sendet keine Nachricht an appengine xmpp client
  • Pyxmpp: schnelles tutorial zum Erstellen eines muc-Clients?
  • GCM-Benachrichtigungen mit Python XMPP
  • 2 Solutions collect form web for “Wie kann ich eine Datei über XMPP mit Python übertragen?”

    Es gibt zwei XEPs (XMPP Extensions), die Dateiübertragung abdecken: XEP-0096 http://xmpp.org/extensions/xep-0096.html (genannt SI (Stream Initiated) File Transfer) und XEP-0234 http: // xmpp .org / extensions / xep-0234.html (Jingle File Transfer)

    XEP-0096 ist das Original, aber ich habe festgestellt, dass es in den meisten Bibliotheken und auch den meisten Kunden nur selten implementiert ist (wie Sie entdeckt haben). XEP-0234 ist viel neuer und findet sich in moderneren Kunden, aber nicht in älteren Bibliotheken (wie xmpppy). Das Problem, das Sie sich stellen werden, auch wenn Sie eine Bibliothek oder eine Implementierung von einem dieser finden, ist, dass beide Seiten der Verbindung auch implementieren müssen.

    Von den beiden, würde ich wählen XEP-0234, weil es ein paar Fragen, die das Original hatte und gilt als die ersetzen für sie.

    Soweit Python-Bibliotheken gehen, unterstützen Sie es nicht. Ich habe bei xmpppy, headstock, pyxmpp, jabber.py, verdrehte Wörter und meine Lieblings-sleekxmppp angesehen.

    Es gibt ein Modul xmpp.filetransfer in xmpppy:

    Dieses Modul enthält IBB-Klasse, die die einfache Implementierung von JEP-0047 ist. Beachten Sie, dass dies nur ein Transport für Daten ist. Sie müssen den Datentransfer vor (via StreamInitiation wahrscheinlich) verhandeln. Leider ist SI noch nicht implementiert.

    Python ist die beste Programmiersprache der Welt.