Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

S3 operations

Every S3 operation Overcast declares — 45 of 53 implemented — with status, behaviour notes and a link to the AWS API reference for each.

45 of 53 listed operations are implemented. Back to S3.

Summary

Category✅ Supported⚠️ Partial❌ Unsupported
Buckets8
CORS12
Website12
Objects113
Multipart uploads61
ACLs & policies34
Versioning3
Tagging3
Lifecycle21
Notifications2

Endpoints

Buckets

OperationStatusNotesAWS Docs
CreateBucket✅ SupportedAccount regional namespaces via x-amz-bucket-namespace: account-regionaldocs
DeleteBucket✅ SupportedBucket must be emptydocs
HeadBucket✅ Supporteddocs
ListBuckets✅ Supporteddocs
GetBucketLocation✅ Supporteddocs
GetBucketEncryption✅ SupportedReturns default SSE-S3 config; stores AES256/KMS bucket encryption rulesdocs
PutBucketEncryption✅ SupportedStores AES256/KMS bucket encryption rulesdocs
DeleteBucketEncryption✅ Supporteddocs

CORS

OperationStatusNotesAWS Docs
GetBucketCors⚠️ PartialCORS rules; rule Id is not yet preserveddocs
PutBucketCors⚠️ PartialCORS rules; rule Id is not yet preserveddocs
DeleteBucketCors✅ Supporteddocs

Website

OperationStatusNotesAWS Docs
GetBucketWebsite⚠️ PartialReturns the whole configuration — IndexDocument, ErrorDocument, RedirectAllRequestsTo and RoutingRules; Overcast serves no website endpoint, so nothing is actually redirecteddocs
PutBucketWebsite⚠️ PartialStores IndexDocument, ErrorDocument, RedirectAllRequestsTo and RoutingRules with AWS’s mutual exclusion and Protocol enum enforced; HttpRedirectCode values are not validated, and Overcast serves no website endpointdocs
DeleteBucketWebsite✅ Supporteddocs

Objects

OperationStatusNotesAWS Docs
PutObject✅ SupportedStores body + x-amz-meta-* headers; If-None-Match: * and If-Match make the write conditional, failing 412 — or 404 when If-Match finds no current versiondocs
GetObject✅ SupportedReturns body, ETag, metadata headers; versionId selects a specific version, and a delete-marked key answers 404 with x-amz-delete-markerdocs
HeadObject✅ Supporteddocs
DeleteObject✅ SupportedIdempotent — 204 for missing keys; in a versioned bucket a delete adds a delete marker, and versionId removes one version permanentlydocs
CopyObject✅ Supportedx-amz-copy-source may name a source versionIddocs
ListObjectsV2✅ Supportedprefix, delimiter, max-keys (validated, clamped to 1000), start-after, continuation-token, encoding-type=url and fetch-owner; x-amz-request-payer and x-amz-optional-object-attributes accepted but Requester Pays and RestoreStatus are not emulateddocs
DeleteObjects✅ SupportedBatch delete up to 1000 keys; quiet mode supported; per-entry VersionId, DeleteMarker and DeleteMarkerVersionId reporteddocs
ListObjects✅ SupportedMarker-based pagination; supports prefix, delimiter, encoding-type=url and the same max-keys validation as ListObjectsV2docs
GetObjectAttributes❌ Unsupportedstub; returns 501docs
PutObjectTagging✅ SupportedUp to 10 tags, unique keys, key 1-128 and value 0-256 characters; the tag character set is not validateddocs
GetObjectTagging✅ Supporteddocs
DeleteObjectTagging✅ Supporteddocs
RestoreObject❌ UnsupportedGlacier restore simulationdocs
SelectObjectContent❌ UnsupportedS3 Select (SQL queries on objects)docs

Multipart uploads

OperationStatusNotesAWS Docs
CreateMultipartUpload✅ Supporteddocs
UploadPart✅ Supporteddocs
UploadPartCopy❌ Unsupportedstub; returns 501docs
CompleteMultipartUpload✅ SupportedHonours the same If-None-Match: * and If-Match conditional writes as PutObject, evaluated at completion timedocs
AbortMultipartUpload✅ Supporteddocs
ListMultipartUploads✅ Supporteddocs
ListParts✅ Supporteddocs

ACLs & policies

OperationStatusNotesAWS Docs
GetBucketAcl❌ Unsupportedstub; returns 501docs
PutBucketAcl❌ Unsupportedstub; returns 501docs
GetObjectAcl❌ Unsupportedstub; returns 501docs
PutObjectAcl❌ Unsupportedstub; returns 501docs
GetBucketPolicy✅ Supporteddocs
PutBucketPolicy✅ Supporteddocs
DeleteBucketPolicy✅ Supporteddocs

Versioning

OperationStatusNotesAWS Docs
GetBucketVersioning✅ Supporteddocs
PutBucketVersioning✅ SupportedEnabled and Suspended, with AWS’s semantics for both; objects that predate the change become their key’s null versiondocs
ListObjectVersions✅ SupportedVersions and delete markers in AWS’s order (key ascending, then most recent first), with prefix, delimiter, max-keys and key-marker/version-id-marker paginationdocs

Tagging

OperationStatusNotesAWS Docs
GetBucketTagging✅ Supporteddocs
PutBucketTagging✅ SupportedUp to 50 tags, unique keys, key 1-128 and value 0-256 characters; the tag character set is not validateddocs
DeleteBucketTagging✅ Supporteddocs

Lifecycle

OperationStatusNotesAWS Docs
GetBucketLifecycleConfiguration✅ SupportedNoSuchLifecycleConfiguration when none is set; reports x-amz-transition-default-minimum-object-sizedocs
PutBucketLifecycleConfiguration⚠️ PartialExpiration, Transition, NoncurrentVersionExpiration, NoncurrentVersionTransition, ExpiredObjectDeleteMarker, AbortIncompleteMultipartUpload and prefix/tag/size filters are applied by an hourly sweeper; x-amz-transition-default-minimum-object-size gates transitions of objects under 128 KB, noncurrent ones included; expiring the current version of a versioned object adds a delete marker rather than deleting itdocs
DeleteBucketLifecycle✅ Supporteddocs

Notifications

OperationStatusNotesAWS Docs
GetBucketNotificationConfiguration✅ SupportedReturns empty config if none setdocs
PutBucketNotificationConfiguration✅ SupportedSQS, SNS, Lambda and EventBridge destinations; prefix/suffix filters. Records carry versionId and sequencer; SNS deliveries carry the Records JSON as the notification envelope’s Message string with Subject “Amazon S3 Notification”, as real S3 does; EventBridge events carry AWS’s Object Created/Object Deleted shape, including deletion-type, minus the fields Overcast has no value fordocs