Go to file
Daniel Gultsch 50e1afa2ba Merge pull request #20 from SamWhited/crontab
Add a cronjob example to remove old files
2015-07-27 13:17:27 +02:00
contrib Add a cronjob example to remove old files 2015-07-26 09:34:55 -05:00
plugins Add gitignore 2015-07-04 13:49:04 -05:00
__init__.py Add Python 2 support 2015-07-04 13:28:52 -05:00
.gitignore Make HTTP address configurable 2015-07-22 01:15:39 -05:00
config.yml make sure we use same domain across different examples 2015-07-22 10:58:38 +02:00
README.md Cleanup readme 2015-07-22 21:30:57 -05:00
requirements.txt Add Python 2 support 2015-07-04 13:28:52 -05:00
server.py Just send Content-disposition: attachment-Header if content is no image 2015-07-26 20:51:18 +02:00

HttpUploadComponent

The HttpUploadComponent is a plugin extension to your XMPP server that allows users to upload files to a HTTP host and eventually share the link to those files.

It runs as a stand alone process on the same host as your XMPP server and connects to that server using the Jabber Component Protocol.

A detailed introduction into the necessity of such a component and the simple protocol can be found on the XMPP Standards email list.

Configuration

Configuration happens in config.yml and is pretty straight forward.

jid and secret have to match the corresponding entries in your XMPP server config (Refer to the documentation of your server).

whitelist should contain a list of domains whos JIDs are allowed to upload files. Remove the entry if you want to allow everyone (not really recommended).

get_url and put_url are prefixes to the URLs. The put_url is usually a combination of your hostname and the port (Port can be ommited if HTTP default ports are being used) The GET URL can use a different host if you want to serve files using a standard nginx or another HTTP server that might be more suitable for serving files than a python script.

For security purposes you should put the python script behind an HTTPS proxy or stunnel (remember to adapt the URLs). For quicker results you can also use the built in TLS encryption by setting keyfile and certfile in the config file.

For the configuration of the XMPP server side have a look into the contrib directory or check the server documentation.

Run

Running the component is as easy as invoking python server.py

Some (unoffical) init scripts can be found in the contrib directory. Feel free to write your own init scripts if necessary and contribute them back by creating a pull request.

Clients

Currently the only client with build in support is Conversations where it is being used to send files to Multi User Conferences and to multiple resources in 1 on 1 chats.