On 2.8.2013, at 18.15, Richard Platel <rpla...@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.

Reply via email to