Each overwrite is an implicit deletion of the previous object. For example, it is NOT the case that if you upload (PUT) a 1 MB object to the same account in an unversioned bucket every day, you will only be billed for only 1 MB at any given time. The previous object is not immediately removed from billing. It continues to be billed until it ages out according to the minimum age (MinAge) and deletion rules. The new object starts a new billing cycle, which is also subject to the MinAge and padding.
Overwriting an object in an unversioned bucket does not immediately stop billing for the previous object.
DeletedStorageSizeBytes represents the sum of all deleted-but-still-billable objects, which can be significant if objects are overwritten or deleted frequently.
When reviewing this article, a few key metrics to understand are:
Metric | Represents |
|---|---|
RawStorageSizeBytes | Actual bytes of all current (non-deleted) objects (unpadded) |
PaddedStorageSizeBytes | Actual bytes of all current (non-deleted) objects, each padded to MinObjSize |
DeletedStorageSizeBytes | Padded bytes of all deleted objects still within their MinAge/retention window (still billable) |
Example Scenario
If you upload 1 MB to the object1 bucket every day for 30 days:
On day 1, object1 (1 MB) is uploaded and billed.
On day 2, a new 1 MB object1 is uploaded. The previous 1 MB is marked as deleted, but continues to be billed until its MinAge expires.
This pattern continues, so at any given time, there may be up to 30 overlapping 1 MB objects being billed (the current one in ActiveStorage or NewStorage, and up to 29 in DeletingStorage).
Actual Byte Calculation
RawStorageSizeBytes—The sum of the actual bytes of all objects currently in NewStorage, ActiveStorage, and UploadingStorage.
PaddedStorageSizeBytes—The sum of all objects, each padded to the minimum billable object size (MinObjSize), in the same states.
DeletedStorageSizeBytes—The sum of bytes (padded) for objects in DeletingStorage (objects that have been deleted but are still within their MinAge or retention window).
Why DeletedStorageSizeBytes Can Appear Inflated
When objects are overwritten frequently, many deleted objects accumulate in DeletingStorage. Each of these deleted objects is still counted in DeletedStorageSizeBytes until their MinAge expires. This can make the DeletedStorageSizeBytes metric appear inflated compared to what you expect, especially if you are overwriting the same bucket frequently.