Skip to content

S3 API support ​

Operation-by-operation support, verified against the dispatcher and the ceph/s3-tests suite (every AWS-relevant object-API test passes). ✅ implemented · ➖ not implemented.

Buckets ​

OperationNotes
CreateBucket / DeleteBucket / HeadBucket / ListBuckets✅
ListObjects / ListObjectsV2✅delimiter, prefix, continuation tokens
ListObjectVersions✅
GetBucketLocation✅
Get/PutBucketVersioning✅
Get/PutBucketAcl✅canned + explicit grants
Get/Put/DeleteBucketPolicy · GetBucketPolicyStatus✅condition keys supported
Get/Put/DeleteBucketCors✅per-bucket rules + preflight
Get/Put/DeleteBucketWebsite✅static website hosting
Get/Put/DeleteBucketLifecycle✅expiration rules enforced
Get/PutObjectLockConfiguration✅
Get/Put/DeleteBucketEncryption✅default encryption
Get/Put/DeleteBucketTagging✅
Get/PutBucketNotification✅webhook delivery to http(s):// destinations — see Bucket notifications
Get/Put/DeleteBucketReplication✅enforced — durable queued replication to local or remote buckets, priority rules, delete markers, x-amz-replication-status; requires source versioning
Get/PutBucketAccelerate✅
Get/PutBucketRequestPayment✅
Get/PutBucketLogging✅access logs delivered to target bucket
Get/Put/DeleteBucketOwnershipControls✅
Get/Put/DeletePublicAccessBlock✅
DeleteObjects (bulk)✅1000-object cap, Quiet, per-object VersionId, governance bypass, preconditions
Metrics / Inventory / Analytics / Intelligent-Tiering configuration➖analytics family; rarely used by SDKs

Objects ​

OperationNotes
PutObject / GetObject / HeadObject / DeleteObject✅Range, all If-* conditionals, response-* overrides, versionId
CopyObject✅metadata directives, encryption re-wrap
Get/Put/DeleteObjectTagging✅
Get/PutObjectAcl✅
Get/PutObjectLegalHold✅
Get/PutObjectRetention✅governance & compliance
GetObjectAttributes✅
RestoreObject✅
SelectObjectContent✅SQL over CSV/JSON, event-stream framing
GetObjectTorrent➖deprecated by AWS

Multipart ​

Operation
CreateMultipartUpload✅ (tagging, SSE, checksums, object-lock headers)
UploadPart✅
UploadPartCopy✅ (source ranges)
CompleteMultipartUpload✅
AbortMultipartUpload✅
ListParts✅
ListMultipartUploads✅

Auth & presign ​

Feature
SigV4 (headers + presigned)✅
SigV2 (headers + presigned)✅
Streaming chunked signing✅
POST-policy browser uploads (V4 + V2)✅
Anonymous access (policy / ACL / PAB)✅
Presign expiry cap7 days (matches AWS)

Server-side encryption ​

Mode
SSE-C✅
SSE-S3✅ (requires configured master key, else 501)
SSE-KMS✅ (same)

Not implemented ​

STS/AssumeRole, Object Lambda (WriteGetObjectResponse), S3 Express (CreateSession, directory buckets), BitTorrent, and the analytics configuration family.

TinyS3 is AGPLv3 licensed. Cloudflare and Cloudflare Workers are trademarks of Cloudflare, Inc. Amazon S3 and AWS are trademarks of Amazon.com, Inc. or its affiliates. MinIO is a trademark of MinIO, Inc. They are named only to describe compatibility; totis.ai is not affiliated with, endorsed by, or sponsored by any of them.