On 2.8.2013, at 18.15, Richard Platel rplatel@tucows.com wrote:
We have a weird quota requirement, we have file storage that we manage through our own APIs but want that usage to come out of the user's mail quota.
I've been thinking something like that as well for various other things: IMAP METADATA/ANNOTATE extension data, Sieve scripts, and also the actual file storage once Dovecot implements WebDAV. The quota plugin probably needs to be made extensible in some way to allow calculation of quota from multiple data sources. Or maybe lib-storage API needs to be made more aware of quota. I'm not entirely sure yet.
The usage is in a maildirsize like file uncreatively called filestoresize in the user's maildir.
In the past we've been doing this by modifying the quota plugin and re-compiling, but it seems like it should be possible to do this via configuration.
Is there a way to add a quota setting pointing at this file for additional usage (not limits)?
I can't think of any good way to do that.
The feature is used infrequently so it would probably be acceptable use the dirsize backend, but I can't figure out how to configure that to point at a certain directory.
I guess if you had a hidden non-listable namespace pointing to your file storage, the dirsize would find it and count them. The problem is, you would have to use dirsize backend for the Maildir as well, which is too slow. (Using a separate dirsize quota for files wouldn't then share the mail quota.) And the Maildir++ backend reads only new/ and cur/ directories.
We pass custom quota rules for each user in our userdb, and use a custom dict proxy program, so that program could read the file and pass a setting at log in time too (if, for example, there was a setting that said "offset the user's quota usage by X amount")
That I think would work.