← all adapters

aws-s3-style

simulates Amazon S3 API 2006-03-01

restadapter v0.1.08 routes

verification

SDKverified with aws-sdk-go-v2 v1.43.7· surface 8 · not implemented 5 · differs 5

use it

# add to stunt.yaml
services:
  aws-s3:
    adapter: embedded:aws-s3-style

# then
$ stunt up

The embedded: source extracts this adapter from the binary — no git clone, fully offline.

how to mock the Amazon S3 API locally

Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Amazon S3 API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Amazon S3 API 2006-03-01 surface — the data is fake, the behavior is real.

backing stores

bucketsobjects

api surface (8)

generated from the adapter manifest — exactly what boots, nothing more

8 routes
GET/{bucket}
PUT/{bucket}
DELETE/{bucket}
PUT/{bucket}/{key+}
GET/{bucket}/{key+}
HEAD/{bucket}/{key+}
DELETE/{bucket}/{key+}
POST/{bucket}/{key+}

SDK-verified behaviors (6)

  • CreateBucket
  • PutObject (binary body)
  • GetObject byte-exact round-trip (incl. non-UTF-8)
  • HeadObject metadata
  • ListObjectsV2 paginator follows continuation (4 over MaxKeys=2)
  • DeleteObject

Not implemented (5)

  • No bucket policy, tagging, ACL, CORS, lifecycle, or website subresources
  • No object versioning (?versions listing, versionId delete) or object lock
  • No CopyObject (x-amz-copy-source) or UploadPartCopy
  • No browser form POST uploads (POST policy)
  • No ListMultipartUploads (GET /{bucket}?uploads)

Differs from the real API (5)

  • ETags are SHA-256-based (real S3 uses MD5); multipart ETag is sha256(etags)-N
  • Multipart 5 MiB minimum part size not enforced (small parts allowed)
  • DELETE of a missing bucket is an idempotent 204 (real S3: 404 NoSuchBucket)
  • SigV4 canonical URI/query rebuilt from decoded values — duplicates indistinguishable
  • No RFC 1123 Date fallback; canonical header whitespace collapsing not applied
want more of the Amazon S3 API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.