s3.bucket.list: measure quota usage by logical size (#10274)

Align the usage percentage with s3.bucket.quota.enforce and the admin
UI, which measure quota against the live data size (size minus
un-vacuumed deleted bytes). Also print the logical size so both the
raw and live views stay visible.
This commit is contained in:
Chris Lu
2026-07-08 14:32:04 -07:00
committed by GitHub
parent b43089f721
commit 11fd20e2b0
+4 -3
View File
@@ -64,14 +64,15 @@ func (c *commandS3BucketList) Do(args []string, commandEnv *CommandEnv, writer i
return nil
}
collection := getCollectionName(commandEnv, entry.Name)
var collectionSize, fileCount float64
var collectionSize, logicalSize, fileCount float64
if collectionInfo, found := collectionInfos[collection]; found {
collectionSize = collectionInfo.Size
logicalSize = collectionInfo.LogicalSize()
fileCount = collectionInfo.FileCount - collectionInfo.DeleteCount
}
fmt.Fprintf(writer, " %s\tsize:%.0f\tchunk:%.0f", entry.Name, collectionSize, fileCount)
fmt.Fprintf(writer, " %s\tsize:%.0f\tlogical:%.0f\tchunk:%.0f", entry.Name, collectionSize, logicalSize, fileCount)
if entry.Quota > 0 {
fmt.Fprintf(writer, "\tquota:%d\tusage:%.2f%%", entry.Quota, float64(collectionSize)*100/float64(entry.Quota))
fmt.Fprintf(writer, "\tquota:%d\tusage:%.2f%%", entry.Quota, logicalSize*100/float64(entry.Quota))
}
// Show bucket owner (use %q to escape special characters)
if entry.Extended != nil {