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 3 - bei der Umwandlung von Ints zu 'Bytes' und dann Verkettung von ihnen (für serielle Übertragung)
  • Python - Steganographer File Handling Error für Nicht-Klartext-Dateien
  • Wie lese ich ein Dateibyte von Byte in Python und wie man einen Bytelisten als Binärdatei ausdruckt?
  • Python - Dezimal-Integer-Low-Byte dann High-Byte
  • Integer-Byte-Umwandlung
  • Konvertieren Sie Java-Byte-Array in Python-Byte-Array
  • Lesen von Datei mit relativen Pfad in Python-Projekt
  • Wie kann man eine XML-Datei in Python aktualisieren / ändern?
  • Anfänger Python: Lesen und Schreiben in die gleiche Datei
  • Textdatei lesen / schreiben
  • Warum ein Skript, das Threads verwendet, druckt extra Zeilen gelegentlich?
  • Berechtigung verweigerte, os.mkdir (d) nach dem Ausführen von shutil.rmtree (d) in Python zu verweigern
  • 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.