Sharing Files
HTTP File Upload
The modern method for sharing files for XMPP chat clients is HTTP File Upload. This method works very well in XMPP clients that are under continued development and support.
When using HTTP File Upload, a file that is intended to be shared is uploaded to the server and the server returns a download link to all participants in the conversation. The URL of the download includes a directory name which is nearly impossible to guess, preventing outsiders from easily finding and downloading the file.
Using HTTP File Upload

On the Psi-Plus client, to share a file, click the "Share Files" icon.

Select the file you want to share. It can be any kind of file. Typically, people share images.

Psi-Plus has an option to include a text comment with the file selected.

The remote client, in this case Gajim, receives a link that when clicked on, opens a browser that views or downloads the file.
Viewing Images In-line

Some chat clients support previewing image files in-line with the the text messages.
Modern XMPP clients support image previewing in-line with text messages. Look in the plugins of your client to see if it is supported. For example, Gajim offers URL Image Preview and Psi-Plus offers a plugin called “Image Preview”.
OMEMO Media Sharing
OMEMO is a standard for encrypting XMPP chat sessions that is gaining in popularity. OMEMO has a feature for encrypting files on the fly before sending via HTTP Upload. On clients that support this feature, the user only needs to be chatting with OMEMO turned on. The link to an OMEMO encrypted file looks like this:
aesgcm://e2e.ee/upload/_Lz_hHvAzCJ5SsXm/perfect-for-orange-juice.jpg#6e31c0ea20bf5f8e7ce3f6752d4c1cfa853d3e9f231ebe194d9b7b980229ca506276dabce10fd523d7b98c56
The file name has not changed, it is still perfect-for-orange-juice.jpg. Instead of the link beginning with https://
it begins with aesgcm://
. Also, a long string of text after the #
is appended to the link. Someone with access to the file alone, without that long string after the #
, will not be able to decipher the file.
Upload Limits on e2e.ee
The following limits apply when using HTTP File Upload on e2e.ee:
- e2e.ee allows you to store a total of 200 megabytes of data
- e2e.ee allows a maximum file size of 25 megabytes
- e2e.ee will automatically delete shared files after 5 days
Manage Uploaded Files
From the Account Management Page, you can:- Review the files that you have uploaded that are currently stored on the server
- Delete some or all of the files that you have uploaded
Socks5 Bytestreams
The older method for sharing files for XMPP chat clients is Socks5 Bytestreams. If you are using an older XMPP client or if you refuse to keep your file on the e2e.ee server even for a minute, then Socks5 Bytestreams may work for you.
Here we see an example of sending a file using Socks5 Bytestreams.

From the Gajim client, choose to send file directly.

Select the file from the file system.

You can include a description of the file.

On the Pidgin XMPP client, the recipient is notified that his chat partner wants to send a file.

The recipient saves the file.
Topics covered on this page:
- XEP-0065: SOCKS5 Bytestreams
- XEP-0363: HTTP File Upload
- XEP-xxxx: OMEMO Media sharing
- AESGCM links
- FileTransfer (Gajim)