Software /
code /
prosody-modules
Diff
mod_http_upload/README.md @ 6003:fe081789f7b5
All community modules: Unify file extention of Markdown files to .md
author | Menel <menel@snikket.de> |
---|---|
date | Tue, 22 Oct 2024 10:26:01 +0200 |
parent | 5923:694b62d8a82f |
child | 6026:37c77676303b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_http_upload/README.md Tue Oct 22 10:26:01 2024 +0200 @@ -0,0 +1,111 @@ +--- +description: HTTP File Upload +labels: +- Stage-Alpha +--- + +Introduction +============ + +This module implements [XEP-0363], versions 0.2 and 0.3, which let +clients upload files over HTTP. + +Configuration +============= + +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 "upload.example.org" "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 where the +component is **not a subdomain** of the VirtualHost, you can use +[`disco_items`][doc:modules:mod_disco#configuration]. + +``` {.lua} +VirtualHost "foo.example.org" +disco_items = { + { "upload.example.com" }, +} +``` + +## 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 = {"gateway.example.com"}; +``` + +Limits +------ + +### 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. + +Path +---- + +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" +``` + +Compatibility +============= + +Works with Prosody 0.11.x and later. + +In Prosody 0.12 and later, consider switching to [mod_http_file_share](https://prosody.im/doc/modules/mod_http_file_share) +which is distributed with Prosody. You can migrate existing files using +[mod_migrate_http_upload](https://modules.prosody.im/mod_migrate_http_upload.html).