AWS

S3, SQS, IAM, and STS emulation with AWS SDK-compatible S3 paths and query-style SQS/IAM/STS endpoints. All state is in-memory, and responses use AWS-compatible XML.

S3

S3 routes use root paths matching the real AWS S3 wire format, so the official AWS SDK works out of the box with forcePathStyle: true. Legacy /s3/ prefixed paths are also supported for backward compatibility.

  • GET / - list all buckets
  • PUT /:bucket - create bucket
  • DELETE /:bucket - delete bucket (must be empty)
  • HEAD /:bucket - check existence, get region
  • GET /:bucket - list objects (supports prefix, delimiter, max-keys, continuation-token, start-after)
  • POST /:bucket - presigned POST upload (browser-style multipart form with policy validation)
  • PUT /:bucket/:key - put object (supports Content-Type, x-amz-meta-* headers)
  • GET /:bucket/:key - get object
  • HEAD /:bucket/:key - head object (metadata only)
  • DELETE /:bucket/:key - delete object
  • PUT /:bucket/:key with x-amz-copy-source - copy object

SQS

All SQS operations use POST /sqs/ with an Action form parameter.

  • CreateQueue - create queue (with optional attributes like VisibilityTimeout)
  • ListQueues - list queues (supports QueueNamePrefix filter)
  • GetQueueUrl - get queue URL by name
  • GetQueueAttributes - get queue attributes
  • SendMessage - send message (supports message attributes)
  • ReceiveMessage - receive messages (supports MaxNumberOfMessages)
  • DeleteMessage - delete message by receipt handle
  • PurgeQueue - purge all messages
  • DeleteQueue - delete queue

IAM

All IAM operations use POST /iam/ with an Action form parameter.

  • CreateUser / GetUser / ListUsers / DeleteUser - user management
  • CreateAccessKey / ListAccessKeys / DeleteAccessKey - access key management
  • CreateRole / GetRole / ListRoles / DeleteRole - role management

STS

All STS operations use POST /sts/ with an Action form parameter.

  • GetCallerIdentity - get caller identity
  • AssumeRole - assume a role (returns temporary credentials)

Inspector

The emulator serves an HTML dashboard at GET /_inspector with tab query parameter (s3, sqs, iam) for browsing current state.