title, seoTitle, description, category, sections, tags
| title | seoTitle | description | category | sections | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S3 API Coverage | Amazon S3 API Coverage on Spinifex — Spinifex Docs | The Amazon S3 API operations Predastore serves on the platform's S3 endpoint, alongside the AWS-hosted features it does not offer and why each is absent. | Coverage |
|
|
S3 API Coverage
Overview
Predastore implements 19 operations in the S3 2006-03-01 API model.
Predastore serves this endpoint
S3 is the one surface the AWS gateway does not answer itself. Object storage runs on Predastore, which serves the S3 REST API directly over its own TLS endpoint, with Reed-Solomon erasure coding and AES-256-GCM at rest behind it.
S3 selects an operation by method, path, query parameter and header rather than by an action name, so several operations share one route. The table below is generated from the route table Predastore builds its router from: GET /{bucket} answers both ListObjects and ListObjectsV2, and PUT /{bucket}/{key} splits four ways on ?partNumber and x-amz-copy-source.
Routed is not the same as conforming
This page says an operation is routed to a handler. It does not say the handler's behaviour matches S3 in every case, and for several operations it does not: ETag is not the body MD5, Marker is ignored on a v1 listing, and x-amz-meta-* does not survive a round trip.
That behaviour is measured separately, against the ceph/s3-tests suite Ceph RGW, MinIO and Garage are all validated with, and the results are published in Predastore's S3 compatibility report. Read that before porting a client that depends on exact S3 semantics.
Operations
| Operation | Status |
|---|---|
AbortMultipartUpload |
✅ Implemented |
CompleteMultipartUpload |
✅ Implemented |
CopyObject |
✅ Implemented |
CreateBucket |
✅ Implemented |
CreateMultipartUpload |
✅ Implemented |
CreateSession |
⛔ Not applicable 3 |
DeleteBucket |
✅ Implemented |
DeleteBucketAnalyticsConfiguration |
⛔ Not applicable 2 |
DeleteBucketIntelligentTieringConfiguration |
⛔ Not applicable 8 |
DeleteBucketInventoryConfiguration |
⛔ Not applicable 4 |
DeleteBucketMetricsConfiguration |
⛔ Not applicable 2 |
DeleteBucketReplication |
⛔ Not applicable 6 |
DeleteObject |
✅ Implemented |
DeleteObjects |
✅ Implemented |
GetBucketAccelerateConfiguration |
⛔ Not applicable 1 |
GetBucketAnalyticsConfiguration |
⛔ Not applicable 2 |
GetBucketIntelligentTieringConfiguration |
⛔ Not applicable 8 |
GetBucketInventoryConfiguration |
⛔ Not applicable 4 |
GetBucketMetricsConfiguration |
⛔ Not applicable 2 |
GetBucketReplication |
⛔ Not applicable 6 |
GetBucketRequestPayment |
⛔ Not applicable 7 |
GetObject |
✅ Implemented |
HeadBucket |
✅ Implemented |
HeadObject |
✅ Implemented |
ListBucketAnalyticsConfigurations |
⛔ Not applicable 2 |
ListBucketIntelligentTieringConfigurations |
⛔ Not applicable 8 |
ListBucketInventoryConfigurations |
⛔ Not applicable 4 |
ListBucketMetricsConfigurations |
⛔ Not applicable 2 |
ListBuckets |
✅ Implemented |
ListMultipartUploads |
✅ Implemented |
ListObjects |
✅ Implemented |
ListObjectsV2 |
✅ Implemented |
ListParts |
✅ Implemented |
PutBucketAccelerateConfiguration |
⛔ Not applicable 1 |
PutBucketAnalyticsConfiguration |
⛔ Not applicable 2 |
PutBucketIntelligentTieringConfiguration |
⛔ Not applicable 8 |
PutBucketInventoryConfiguration |
⛔ Not applicable 4 |
PutBucketMetricsConfiguration |
⛔ Not applicable 2 |
PutBucketReplication |
⛔ Not applicable 6 |
PutBucketRequestPayment |
⛔ Not applicable 7 |
PutObject |
✅ Implemented |
RestoreObject |
⛔ Not applicable 8 |
UploadPart |
✅ Implemented |
UploadPartCopy |
✅ Implemented |
WriteGetObjectResponse |
⛔ Not applicable 5 |
Notes
- Transfer acceleration routes uploads over AWS edge locations, which an on-premise deployment has none of.
- Storage class analytics and CloudWatch request metrics are AWS-hosted reporting services with no equivalent here.
- Sessions authenticate S3 Express One Zone directory buckets, a storage class this platform does not offer.
- Inventory reports are an AWS-hosted scheduled export; a listing here is served live from the metadata store.
- S3 Object Lambda rewrites a response from a Lambda function, and Lambda is not offered.
- Replication copies objects to a bucket in another region, and a deployment is a single region with no peer.
- Requester Pays shifts transfer charges to the caller, which needs AWS billing behind it.
- Intelligent tiering, archive storage classes and the restores they need are AWS-hosted lifecycle services; objects here are held in one class on local media.