MediaAttachment.Size was stored and never summed: nobody, the administrator included, could tell what media took, and nothing bounded it. Counted.Media and MediaOfRoot sum what is kept (not trashed). A login sees what its personas' uploads and pictures take at /clientapi/user/storage (ViewStorage), with its quota when the server sets one; Media:QuotaBytesPerRoot (0, no quota, by default) refuses an upload or a picture over it with 422, whichever persona sends it; the statistics overview gains the media totals, the proxy cache and the trash (ViewMediaTotals). Tests: a login's storage counts what its personas keep and forgets what is trashed; two uploads from two personas of one login are refused together past the quota. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
12 lines
331 B
C#
12 lines
331 B
C#
namespace PrivaPub.ClientModels.User
|
|
{
|
|
// /clientapi/user/storage: what the login's media take (every persona's uploads and pictures), and its quota when the
|
|
// server sets one
|
|
public class ViewStorage
|
|
{
|
|
public long MediaBytes { get; set; }
|
|
public long MediaFiles { get; set; }
|
|
public long? QuotaBytes { get; set; }
|
|
}
|
|
}
|