如何使用Python通过XMPP传输文件?

时间:2010-05-17 19:10:19

标签: python xmpp file-transfer

我正在使用xmpppy库用于我的jabber远程管理机器人,但我找不到如何发送/接收文件并将其保存在指定的目录中。文档很差,没有任何示例,但我真的想做到。有人可以展示一些例子或一些关于它的链接吗?或者也许我应该使用替代的xmpp绑定?

2 个答案:

答案 0 :(得分:3)

有两个XEP(XMPP Extensions)涵盖文件传输:XEP-0096 http://xmpp.org/extensions/xep-0096.html(称为SI(流发起)文件传输)和XEP-0234 http://xmpp.org/extensions/xep-0234.html(Jingle文件传输)

XEP-0096是原始版本,但我发现在大多数库和大多数客户端中很少实现(如您所发现的)。 XEP-0234更新,可以在更现代的客户端中找到,但不能在旧库(如xmpppy)中找到。即使找到库或其中任何一个的实现,您将要面对的问题是连接的两端也必须实现它们。

在这两个中,我会选择XEP-0234,因为它涵盖了原始版本中的一些问题,并被认为是它的替代品。

就Python库而言,没有人支持它。我看过xmpppy,headstock,pyxmpp,jabber.py,扭曲的单词和我最喜欢的sleekxmppp。

答案 1 :(得分:0)

xmpppy中有一个模块xmpp.filetransfer

  

该模块包含IBB类,它是JEP-0047的简单实现。请注意,这只是数据的传输。您必须先协商数据传输(最有可能通过StreamInitiation)。不幸的是SI还没有实现。