view mod_http_upload/README.markdown @ 4443:0a56dc6c61af

mod_http_upload: Add access config option
author Nicolas Cedilnik <>
date Tue, 16 Feb 2021 21:29:27 +0100
parents 268fa9d45840
children 260a33eabbd3
line wrap: on
line source

description: HTTP File Upload
labels: 'Stage-Alpha'


This module implements [XEP-0363], versions 0.2 and 0.3, which let
clients upload files over HTTP.


mod\_http\_upload relies on Prosodys HTTP server and mod\_http for
serving HTTP requests. See [Prosodys HTTP server documentation][doc:http]
for information about how to configure ports, HTTP Host names etc.

The module can be added as a new Component definition:

``` {.lua}
Component "" "http_upload"

It should **not** be added to modules_enabled.

## Discoverability

Prosody makes subdomains of your VirtualHosts easily discoverable by
clients. To make the component discoverable by other hosts, use

``` {.lua}
VirtualHost ""
disco_items = {
    { "" },

## Access

You may want to give upload access to additional entities such as components
by using the `http_upload_access` config option.

``` {.lua}
http_upload_access = {""};


### Max size

A maximum file size can be set by:

``` {.lua}
http_upload_file_size_limit = 123 -- bytes

Default is 1MB (1024\*1024).

This can not be set over the value of `http_max_content_size` (default 10M).
Consider [mod_http_upload_external] instead of attempting to increase
this limit.

### Max age

Files can be set to be deleted after some time:

``` lua
http_upload_expire_after = 60 * 60 * 24 * 7 -- a week in seconds

Expired files are deleted when a new upload slot is requested,

A command exists to invoke expiry:

prosodyctl mod_http_upload expire [list of users or hosts]

### User quota

A total maximum size of all uploaded files per user can be set by:

``` lua
http_upload_quota = 1234 -- bytes

A request for a slot that would take an user over quota is denied.


By default, uploaded files are put in a sub-directory of the default
Prosody storage path (usually `/var/lib/prosody`). This can be changed:

``` {.lua}
http_upload_path = "/path/to/uploaded/files"


Works with Prosody 0.9.x and later.