.. _implementedservice_s3:
.. |start-h3| raw:: html
.. |end-h3| raw:: html
==
s3
==
.. autoclass:: moto.s3.models.S3Backend
|start-h3| Implemented features for this service |end-h3|
- [X] abort_multipart_upload
- [X] complete_multipart_upload
- [X] copy_object
- [X] create_bucket
- [ ] create_bucket_metadata_configuration
- [ ] create_bucket_metadata_table_configuration
- [X] create_multipart_upload
- [ ] create_session
- [X] delete_bucket
- [ ] delete_bucket_analytics_configuration
- [X] delete_bucket_cors
- [X] delete_bucket_encryption
- [ ] delete_bucket_intelligent_tiering_configuration
- [ ] delete_bucket_inventory_configuration
- [X] delete_bucket_lifecycle
- [ ] delete_bucket_metadata_configuration
- [ ] delete_bucket_metadata_table_configuration
- [ ] delete_bucket_metrics_configuration
- [X] delete_bucket_ownership_controls
- [X] delete_bucket_policy
- [X] delete_bucket_replication
- [X] delete_bucket_tagging
- [X] delete_bucket_website
- [X] delete_object
- [X] delete_object_tagging
- [X] delete_objects
- [X] delete_public_access_block
- [ ] get_bucket_abac
- [X] get_bucket_accelerate_configuration
- [X] get_bucket_acl
- [ ] get_bucket_analytics_configuration
- [X] get_bucket_cors
- [X] get_bucket_encryption
- [ ] get_bucket_intelligent_tiering_configuration
- [X] get_bucket_inventory_configuration
- [X] get_bucket_lifecycle
- [X] get_bucket_lifecycle_configuration
- [X] get_bucket_location
- [X] get_bucket_logging
- [ ] get_bucket_metadata_configuration
- [ ] get_bucket_metadata_table_configuration
- [ ] get_bucket_metrics_configuration
- [ ] get_bucket_notification
- [X] get_bucket_notification_configuration
- [X] get_bucket_ownership_controls
- [X] get_bucket_policy
- [ ] get_bucket_policy_status
- [X] get_bucket_replication
- [ ] get_bucket_request_payment
- [X] get_bucket_tagging
- [X] get_bucket_versioning
- [ ] get_bucket_website
- [X] get_object
- [X] get_object_acl
- [X] get_object_attributes
The following attributes are not yet returned: DeleteMarker, RequestCharged, ObjectParts
- [X] get_object_legal_hold
- [X] get_object_lock_configuration
- [ ] get_object_retention
- [X] get_object_tagging
- [ ] get_object_torrent
- [X] get_public_access_block
- [X] head_bucket
- [X] head_object
- [ ] list_bucket_analytics_configurations
- [ ] list_bucket_intelligent_tiering_configurations
- [X] list_bucket_inventory_configurations
- [ ] list_bucket_metrics_configurations
- [X] list_buckets
- [ ] list_directory_buckets
- [X] list_multipart_uploads
The delimiter and max-uploads parameters have not yet been implemented.
- [X] list_object_versions
The default value for the MaxKeys-argument is 100. This can be configured with an environment variable:
MOTO_S3_DEFAULT_MAX_KEYS=5
- [X] list_objects
The default value for the MaxKeys-argument is 100. This can be configured with an environment variable:
MOTO_S3_DEFAULT_MAX_KEYS=5
- [X] list_objects_v2
The default value for the MaxKeys-argument is 100. This can be configured with an environment variable:
MOTO_S3_DEFAULT_MAX_KEYS=5
- [X] list_parts
- [ ] put_bucket_abac
- [X] put_bucket_accelerate_configuration
- [X] put_bucket_acl
- [ ] put_bucket_analytics_configuration
- [X] put_bucket_cors
Note that the moto server configures global wildcard CORS settings by default. To avoid this from overriding empty bucket CORS, disable global CORS with an environment variable:
MOTO_DISABLE_GLOBAL_CORS=true
- [X] put_bucket_encryption
- [ ] put_bucket_intelligent_tiering_configuration
- [X] put_bucket_inventory_configuration
- [X] put_bucket_lifecycle
- [X] put_bucket_lifecycle_configuration
- [X] put_bucket_logging
- [ ] put_bucket_metrics_configuration
- [ ] put_bucket_notification
- [X] put_bucket_notification_configuration
The configuration can be persisted, but at the moment we only send notifications to the following targets:
- AWSLambda
- SNS
- SQS
- EventBridge
For the following events:
- 's3:ObjectCreated:CompleteMultipartUpload'
- 's3:ObjectCreated:Copy'
- 's3:ObjectCreated:Post'
- 's3:ObjectCreated:Put'
- 's3:ObjectDeleted'
- 's3:ObjectRestore:Post'
- [X] put_bucket_ownership_controls
- [X] put_bucket_policy
Basic policy enforcement is in place.
Restrictions:
- Only statements with principal=* are taken into account
- Conditions are not taken into account
- [X] put_bucket_replication
- [ ] put_bucket_request_payment
- [X] put_bucket_tagging
- [X] put_bucket_versioning
- [X] put_bucket_website
- [X] put_object
- [X] put_object_acl
- [X] put_object_legal_hold
- [X] put_object_lock_configuration
- [X] put_object_retention
- [X] put_object_tagging
- [X] put_public_access_block
- [ ] rename_object
- [X] restore_object
- [X] select_object_content
Highly experimental. Please raise an issue if you find any inconsistencies/bugs.
Known missing features:
- Function aliases (count(*) as cnt)
- Most functions (only count() is supported)
- Result is always in JSON
- FieldDelimiters are ignored
- [ ] update_bucket_metadata_inventory_table_configuration
- [ ] update_bucket_metadata_journal_table_configuration
- [ ] update_object_encryption
- [X] upload_file
- [X] upload_fileobj
- [X] upload_part
- [X] upload_part_copy
- [ ] write_get_object_response