# S3 Compatibility Matrix This project is S3-compatible for a focused subset of operations. ## Implemented ### Service and account - `GET /` list buckets ### Bucket - `PUT /{bucket}` create bucket - `HEAD /{bucket}` head bucket - `DELETE /{bucket}` delete bucket (must be empty) - `GET /{bucket}?list-type=2...` list objects v2 - `GET /{bucket}?location` get bucket location - `POST /{bucket}?delete` delete multiple objects ### Object - `PUT /{bucket}/{key}` put object - `GET /{bucket}/{key}` get object - `HEAD /{bucket}/{key}` head object - `DELETE /{bucket}/{key}` delete object - `GET /{bucket}/{key}` supports single-range requests ### Multipart upload - `POST /{bucket}/{key}?uploads` initiate - `PUT /{bucket}/{key}?uploadId=...&partNumber=N` upload part - `GET /{bucket}/{key}?uploadId=...` list parts - `POST /{bucket}/{key}?uploadId=...` complete - `DELETE /{bucket}/{key}?uploadId=...` abort ### Authentication - AWS SigV4 header auth - AWS SigV4 presigned query auth - `aws-chunked` payload decode for streaming uploads ## Partially Implemented / Differences - Exact parity with AWS S3 error codes/headers is still evolving. - Some S3 edge-case behaviors may differ (especially uncommon query/header combinations). - Admin API is custom JSON (`/_admin/v1/*`). ## Not Implemented (Current) - Bucket versioning - Lifecycle rules - Replication - Object lock / legal hold / retention - SSE-S3 / SSE-KMS / SSE-C - ACL APIs and IAM-compatible policy APIs - STS / temporary credentials - Event notifications - Tagging APIs - CORS APIs - Website hosting APIs