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-Byte-String wird im Wörterbuch falsch gedruckt
  • Wie lese ich ein Dateibyte von Byte in Python und wie man einen Bytelisten als Binärdatei ausdruckt?
  • Schreiben, dann lesen in-Speicher-Bytes (BytesIO) gibt ein leeres Ergebnis
  • Konvertieren von Bytes in Bits in Python
  • Wie soll ich Bytes (mit ASCII) decodieren, ohne irgendwelche "Junk" Bytes zu verlieren, wenn xmlcharrefreplace und backslashreplace nicht funktionieren?
  • Fehlermeldung beim Ausführen von telnet in python shell
  • Wie benutzt man Python, um GDB-Unterprozeß zu erstellen und Befehle dynamisch basierend auf Ausgabe zu senden?
  • Textdatei lesen / schreiben
  • Piping Batch File Ausgabe in ein Python-Skript
  • Was genau das python's file.flush () macht was
  • So öffnen und schließen Sie Dateien in Python 2.4
  • Binärpuffer in 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.