Skip to main content

Objects and their limits

These are S3’s own numbers, and they are enforced at S3’s values:
The single-upload ceiling is checked against the size you declare, before any payload is read. An oversized Content-Length is refused with EntityTooLarge (413 on the storage API) without transferring a byte — and a body that streams past the limit without declaring it is cut off too.
The 5 MiB floor applies to every part except the last one named at completion, and it is checked at completion, not when the part is uploaded. A part list whose non-final part is short fails with EntityTooSmall after the bytes are already staged. Uploads you start and never finish keep their staged parts until something removes them. Add an abort_incomplete_multipart_upload lifecycle rule rather than relying on remembering.

Storage classes

Two classes, and they name device tiers rather than access patterns: They keep S3’s uppercase spelling because the vocabulary is S3’s. Set a class per object with x-amz-storage-class on the upload, or move objects between classes with a lifecycle transition. The two classes bill separately, so the label an object carries decides which counter and which price its bytes land on. An unsupported class — STANDARD_IA, GLACIER, anything else S3 defines — is rejected rather than quietly stored as STANDARD.

Working with objects through the storage API

You do not need an S3 client. The storage API exposes the same object plane under /v1/buckets/{bucket}/objects, authenticated with your ordinary Basaltic credentials exactly like every other call to this API — useful for a service that already holds them and should not carry an S3 SDK as well:
A bucket’s Objects tab is a file browser over the same routes. Upload opens the Upload objects page, where you set a Folder prefix, pick a Storage classStandard or Cold — and add Files. New folder creates a prefix, and selecting rows gives you Delete selected, which issues one delete per key rather than a bulk request — see the note below.Opening an object gives you Download and Delete, a Versions tab, and a Properties tab carrying its Tags alongside the retention controls.
Per-object sub-resources ride as query parameters on these routes — ?tagging, ?retention, ?legal-hold — and the same X-Amz-* headers apply on upload for storage class, encryption and object-lock settings. delimiter gives you the usual folder semantics through common_prefixes, and max_keys is capped at 1000 per page.
Bulk delete (POST ?delete) and server-side copy (x-amz-copy-source) are S3 endpoint features. Through the storage API, delete objects one at a time.