S3
Object storage with bucket-scoped sub-resources — policies, versioning, lifecycle, CORS, ACLs, notifications, object lock, range requests.
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
71 operations exposed by this service as of MiniStack 1.3.14. Extracted directly from the handler dispatch in the source module.
... and 24 more
accelerate
acl
cors
create_bucket
create_multipart_upload
DELETE
delete
delete_bucket
delete_bucket_cors
delete_bucket_encryption
delete_bucket_lifecycle
delete_bucket_ownership_controls
delete_bucket_policy
delete_bucket_replication
delete_bucket_tagging
delete_bucket_website
delete_object
delete_object_tagging
delete_objects
delete_public_access_block
encryption
GET
get_bucket_accelerate
get_bucket_acl
get_bucket_cors
get_bucket_encryption
get_bucket_lifecycle
get_bucket_location
get_bucket_logging
get_bucket_notification
get_bucket_ownership_controls
get_bucket_policy
get_bucket_replication
get_bucket_request_payment
get_bucket_tagging
get_bucket_versioning
get_bucket_website
get_object
get_object_data
get_object_legal_hold
get_object_lock_configuration
get_object_retention
get_object_tagging
get_public_access_block
HEAD
head_bucket
head_object
legal-hold
lifecycle
list-type
list_buckets
list_multipart_uploads
list_object_versions
list_parts
location
logging
notification
object-lock
ownershipControls
partNumber
policy
POST
publicAccessBlock
PUT
put_bucket_accelerate
put_bucket_acl
put_bucket_cors
put_bucket_encryption
put_bucket_lifecycle
put_bucket_logging
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:372-421
Read the source to verify the ops list above — dispatch tables and handler functions are the ground truth.