Chris Lu and GitHub
292c7493fa
s3: enforce bucket quota on logical size and surface read-only state in Admin UI ( #10224 )
...
* s3: enforce bucket quota on logical size, not un-vacuumed physical size
A bucket full of deleted/overwritten objects awaiting vacuum went
read-only while its live data stayed under quota, because enforcement
used the raw single-copy volume size with garbage included. Subtract
DeletedByteCount via a LogicalSize() helper in the auto-enforce loop,
the s3.bucket.quota.enforce command, and the bucket_size_bytes metric
(labeled logical but counting garbage too). Deleting objects now
relieves quota immediately and enforcement matches the UI usage figure.
* admin: surface bucket read-only state in the S3 buckets UI
Read the read-only flag quota enforcement writes to filer.conf and show
it as a badge in the bucket list and a Status row in the details modal,
so an operator can see why writes are being rejected.
2026-07-03 12:39:45 -07:00
..
2026-06-01 15:11:02 -07:00
2026-05-20 23:31:21 -07:00
2026-05-20 23:31:21 -07:00
2026-04-21 20:17:42 -07:00
2026-07-03 12:39:45 -07:00
2026-06-10 22:31:18 -07:00
2026-06-30 20:01:55 -07:00
2026-06-30 20:01:55 -07:00
2026-06-01 19:25:15 -07:00
2026-06-22 11:23:23 -07:00
2026-06-22 01:22:20 -07:00
2026-06-22 01:22:20 -07:00
2026-06-24 08:40:29 -07:00
2026-06-25 10:38:14 -07:00
2026-06-30 23:20:50 -07:00
2026-07-02 11:58:08 -07:00
2026-07-03 10:47:14 -07:00
2026-06-30 15:35:27 -07:00
2026-05-07 17:45:04 -07:00
2026-04-17 21:09:36 -07:00
2026-04-17 21:09:36 -07:00
2026-06-30 13:28:53 -07:00
2026-06-30 13:28:53 -07:00
2026-04-28 12:30:13 -07:00
2026-04-28 12:30:13 -07:00
2026-06-01 09:54:22 -07:00
2026-06-08 23:42:13 -07:00
2026-06-08 23:42:13 -07:00
2026-06-19 09:09:01 -07:00
2026-05-12 12:37:09 -07:00
2026-06-08 13:55:53 -07:00
2026-05-07 17:45:04 -07:00
2026-07-01 12:14:19 -07:00
2026-07-01 12:14:19 -07:00
2026-07-01 12:14:19 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-06-06 11:20:15 -07:00
2026-07-02 21:11:41 -07:00
2026-07-03 12:39:45 -07:00
2026-05-07 17:45:04 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-06-24 19:36:42 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-12 18:29:18 -07:00
2026-05-13 00:19:05 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-13 10:48:58 -07:00
2026-04-28 12:30:13 -07:00
2026-04-28 12:30:13 -07:00
2026-06-30 19:31:12 -07:00
2026-06-30 21:26:57 -07:00
2026-06-13 20:05:33 -07:00
2026-06-13 20:05:33 -07:00
2026-06-29 12:43:19 -07:00
2026-06-29 12:43:19 -07:00
2026-05-06 15:19:43 -07:00
2026-06-26 00:48:29 -07:00
2026-06-13 20:05:33 -07:00
2026-06-30 20:02:23 -07:00
2026-06-24 19:36:42 -07:00
2026-06-29 11:31:45 -07:00
2026-06-29 12:43:19 -07:00
2026-06-23 11:27:43 -07:00
2026-06-23 11:27:43 -07:00
2026-05-28 19:29:25 -07:00
2026-05-28 19:29:25 -07:00
2026-05-06 15:19:43 -07:00
2026-06-10 13:29:07 -07:00
2026-05-20 10:27:00 -07:00
2026-06-13 20:09:00 -07:00
2026-06-13 20:09:00 -07:00
2026-06-11 10:46:34 -07:00
2026-06-13 20:09:00 -07:00
2026-05-06 15:19:43 -07:00
2026-04-20 15:32:31 -07:00
2026-05-21 02:16:28 -07:00
2026-06-14 13:55:36 -07:00
2026-04-08 13:07:15 -07:00