Как я могу передать файл через XMPP, используя Python? - PullRequest
2 голосов
/ 17 мая 2010

Я использую библиотеку xmpppy для своего бота удаленного администрирования jabber, но не могу найти, как отправить / получить файл и сохранить его в указанном каталоге. Документация скудная и примеров нет, но я очень хочу это сделать. Кто-нибудь может показать некоторые примеры или ссылки на это? Или, может быть, я должен использовать альтернативные привязки xmpp?

Ответы [ 2 ]

3 голосов
/ 19 мая 2010

Существует два XEP (расширения XMPP), которые охватывают передачу файлов: 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.

0 голосов
/ 04 февраля 2011

Есть модуль xmpp.filetransfer в xmpppy:

Этот модуль содержит класс IBB, который является простой реализацией JEP-0047. Обратите внимание, что это просто транспорт для передачи данных. Вы должны договориться о передаче данных раньше (скорее всего, через StreamInitiation). К сожалению, SI пока не реализован.

...