DocsAWS 101BlogServices

S3

Object storage with bucket-scoped sub-resources — policies, versioning, lifecycle, CORS, ACLs, notifications, object lock, range requests.

REST-XML multi-tenant 73 operations

Quick start

import boto3
s3 = boto3.client("s3", endpoint_url="http://localhost:4566",
                  region_name="us-east-1",
                  aws_access_key_id="test", aws_secret_access_key="test")
s3.create_bucket(Bucket="demo")
s3.put_object(Bucket="demo", Key="hi.txt", Body=b"hello")
print(s3.get_object(Bucket="demo", Key="hi.txt")["Body"].read())

Supported operations

73 operations exposed by this service as of MiniStack 1.4.21. Extracted directly from the handler dispatch in the source module.

AbortMultipartUpload CompleteMultipartUpload CopyObject CreateBucket CreateMultipartUpload DeleteBucket DeleteBucketCors DeleteBucketEncryption DeleteBucketLifecycle DeleteBucketOwnershipControls DeleteBucketPolicy DeleteBucketReplication DeleteBucketTagging DeleteBucketWebsite DeleteObject DeleteObjects DeleteObjectTagging DeletePublicAccessBlock GetBucketAccelerateConfiguration GetBucketAcl GetBucketCors GetBucketEncryption GetBucketLifecycleConfiguration GetBucketLocation GetBucketLogging GetBucketNotificationConfiguration GetBucketOwnershipControls GetBucketPolicy GetBucketReplication GetBucketRequestPayment GetBucketTagging GetBucketVersioning GetBucketWebsite GetObject GetObjectAcl GetObjectAttributes GetObjectLegalHold GetObjectLockConfiguration GetObjectRetention GetObjectTagging GetPublicAccessBlock HeadBucket HeadObject ListBuckets ListMultipartUploads ListObjects ListObjectsV2 ListObjectVersions ListParts PostObject PutBucketAccelerateConfiguration PutBucketAcl PutBucketCors PutBucketEncryption PutBucketLifecycleConfiguration PutBucketLogging PutBucketNotificationConfiguration PutBucketOwnershipControls PutBucketPolicy PutBucketReplication PutBucketRequestPayment PutBucketTagging PutBucketVersioning PutBucketWebsite PutObject PutObjectAcl PutObjectLegalHold PutObjectLockConfiguration PutObjectRetention PutObjectTagging PutPublicAccessBlock UploadPart UploadPartCopy

CloudFormation

The CloudFormation engine provisions these resource types via this service:

AWS::S3::Bucket AWS::S3::BucketPolicy

See CloudFormation engine for intrinsic support and lifecycle details.

Known limitations

  • SSE-KMS encryption keys are stored per object but encryption/decryption is a silent no-op — ciphertext equals plaintext.
  • Replication configuration accepted; no cross-bucket replication is performed.
  • Notification configuration accepted; events are only dispatched for SQS/SNS/Lambda targets that MiniStack tracks.

Source

  • ministack/services/s3.py

Read the source to verify the ops list above — dispatch tables and handler functions are the ground truth.