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?

  • Python - Dezimal-Integer-Low-Byte dann High-Byte
  • Eingebaute Funktion in numpy, um eine Ganzzahl zu einer Reihe von booleschen Werten in einer bitweisen Weise zu interpretieren?
  • Wie soll ich Bytes (mit ASCII) decodieren, ohne irgendwelche "Junk" Bytes zu verlieren, wenn xmlcharrefreplace und backslashreplace nicht funktionieren?
  • Probleme mit Bytes von einem Mikrocontroller in Python
  • Python 3 - bei der Umwandlung von Ints zu 'Bytes' und dann Verkettung von ihnen (für serielle Übertragung)
  • Anforderung gibt Bytes zurück und ich vermisse sie nicht
  • Lesen Sie eine verteilte, tabulatorgetrennte CSV
  • Wie schreibe ich in einer bestimmten Zeile in der Datei in Python?
  • Python langsam Leseleistung Problem
  • TensorFlow Checkpoint speichern und lesen
  • Python schnellster Zugriff auf Zeile in Datei
  • Das Schreiben von Rohdaten auf die physische Festplatte (Flash-Laufwerk) schlägt mit "Bad file descriptor" auf Windows - Python
  • 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.