This module implements stanza archives using files, similar to the default “internal” storage. Unlike “internal”, it saves messages in two files per day (and per user), one containing metadata and one containing the actual messages in XML format (hence the name).
Splitting data per day improves performance for larger archives as it does not have to look through data from other days.
To use this with mod_mam add this to your config:
Refer to Prosodys data storage documentation for more information.
Note that this module does not implement the “keyval” storage method and can’t be used by anything other than archives.
|0.8||Does not work|
This module stores data in a way that overlaps with the more recent archive support in
mod_storage_internal, meaning e.g. mod_migrate will not be able to cleanly convert to or from the
To mitigate this, an migration command has been added to
$STORE is e.g.
archive2 for MAM and
muc_log for MUC logs. Finally,
$JID is the JID of the user or MUC room to be migrated, which can be repeated.
Since this is a destructive command, don’t forget to backup your data first.
Prosody should not be running while converting data.
Data is split in three kinds of files and messages are grouped by day. Prosodys
util.datamanager is used, so all special characters in these filenames are escaped and reside under
hostname/store in Prosodys Data directory, commonly
This makes it fairly simple and fast to find messages by timestamp. Queries that are not time based, but limited to a specific contact may be expensive as potentially the entire archive will be read.
Each archive ID is of the form
YYYY-MM-DD-random, making lookups by archive id just as simple as time based queries.