Skip to content

Instantly share code, notes, and snippets.

@irishgordo
Last active August 23, 2021 19:16
Show Gist options
  • Save irishgordo/072c705f64cc7dfa59855800ef9100e1 to your computer and use it in GitHub Desktop.
Save irishgordo/072c705f64cc7dfa59855800ef9100e1 to your computer and use it in GitHub Desktop.
S3 Object Store API / Mesh / Moto / Ideas / Notes

Moto, Python based S3 mocking: https://github.com/spulec/moto

Current S3 Implementation in Moto:

s3

52% implemented
  • abort_multipart_upload
  • complete_multipart_upload
  • copy_object
  • create_bucket
  • create_multipart_upload
  • delete_bucket
  • delete_bucket_analytics_configuration
  • delete_bucket_cors
  • delete_bucket_encryption
  • delete_bucket_intelligent_tiering_configuration
  • delete_bucket_inventory_configuration
  • delete_bucket_lifecycle
  • delete_bucket_metrics_configuration
  • 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
  • get_bucket_accelerate_configuration
  • get_bucket_acl
  • get_bucket_analytics_configuration
  • get_bucket_cors
  • get_bucket_encryption
  • get_bucket_intelligent_tiering_configuration
  • get_bucket_inventory_configuration
  • get_bucket_lifecycle
  • get_bucket_lifecycle_configuration
  • get_bucket_location
  • get_bucket_logging
  • get_bucket_metrics_configuration
  • get_bucket_notification
  • get_bucket_notification_configuration
  • get_bucket_ownership_controls
  • get_bucket_policy
  • get_bucket_policy_status
  • get_bucket_replication
  • get_bucket_request_payment
  • get_bucket_tagging
  • get_bucket_versioning
  • get_bucket_website
  • get_object
  • get_object_acl
  • get_object_legal_hold
  • get_object_lock_configuration
  • get_object_retention
  • get_object_tagging
  • get_object_torrent
  • get_public_access_block
  • head_bucket
  • head_object
  • list_bucket_analytics_configurations
  • list_bucket_intelligent_tiering_configurations
  • list_bucket_inventory_configurations
  • list_bucket_metrics_configurations
  • list_buckets
  • list_multipart_uploads
  • list_object_versions
  • list_objects
  • list_objects_v2
  • list_parts
  • put_bucket_accelerate_configuration
  • put_bucket_acl
  • put_bucket_analytics_configuration
  • put_bucket_cors
  • put_bucket_encryption
  • put_bucket_intelligent_tiering_configuration
  • put_bucket_inventory_configuration
  • put_bucket_lifecycle
  • put_bucket_lifecycle_configuration
  • put_bucket_logging
  • put_bucket_metrics_configuration
  • put_bucket_notification
  • put_bucket_notification_configuration
  • put_bucket_ownership_controls
  • put_bucket_policy
  • put_bucket_replication
  • put_bucket_request_payment
  • put_bucket_tagging
  • put_bucket_versioning
  • put_bucket_website
  • put_object
  • put_object_acl
  • put_object_legal_hold
  • put_object_lock_configuration
  • put_object_retention
  • put_object_tagging
  • put_public_access_block
  • restore_object
  • select_object_content
  • upload_part
  • upload_part_copy
  • write_get_object_response

s3control

0% implemented
  • create_access_point
  • create_access_point_for_object_lambda
  • create_bucket
  • create_job
  • delete_access_point
  • delete_access_point_for_object_lambda
  • delete_access_point_policy
  • delete_access_point_policy_for_object_lambda
  • delete_bucket
  • delete_bucket_lifecycle_configuration
  • delete_bucket_policy
  • delete_bucket_tagging
  • delete_job_tagging
  • delete_public_access_block
  • delete_storage_lens_configuration
  • delete_storage_lens_configuration_tagging
  • describe_job
  • get_access_point
  • get_access_point_configuration_for_object_lambda
  • get_access_point_for_object_lambda
  • get_access_point_policy
  • get_access_point_policy_for_object_lambda
  • get_access_point_policy_status
  • get_access_point_policy_status_for_object_lambda
  • get_bucket
  • get_bucket_lifecycle_configuration
  • get_bucket_policy
  • get_bucket_tagging
  • get_job_tagging
  • get_public_access_block
  • get_storage_lens_configuration
  • get_storage_lens_configuration_tagging
  • list_access_points
  • list_access_points_for_object_lambda
  • list_jobs
  • list_regional_buckets
  • list_storage_lens_configurations
  • put_access_point_configuration_for_object_lambda
  • put_access_point_policy
  • put_access_point_policy_for_object_lambda
  • put_bucket_lifecycle_configuration
  • put_bucket_policy
  • put_bucket_tagging
  • put_job_tagging
  • put_public_access_block
  • put_storage_lens_configuration
  • put_storage_lens_configuration_tagging
  • update_job_priority
  • update_job_status

s3outposts

0% implemented
  • create_endpoint
  • delete_endpoint
  • list_endpoints

ObjectStorage Impl.

Ref, object_storange_?.go (linodego)

What's currently implemented in hooks
  • Object Storage Buckets List
  • ^ tested -> TestListObjectStorageBuckets (object_storage_buckets_test.go)
  • Object Storage Bucket Create
  • ^ tested -> TestCreateObjectStorangeBucket (object_storage_buckets_test.go)
  • Object Storage Buckets in Cluster List
  • ^ tested ?
  • Object Storage Bucket Remove
  • ^ tested ?
  • Object Storage Bucket View
  • ^ tested -> TestGetObjectStorageBucket_found/missing (object_storage_buckets_test.go)
  • Object Storage Bucket Access Modify
  • ^ tested ? hmmm TestUpdateObjectStorageBucketAccess ?
  • Object Storage Bucket Access Update
  • ^ tested ? hmmm TestUpdateObjectStorageBucketAccess ?
  • Object Storage Object ACL Config View
  • ^ tested -> TestGetObjectStorageBucketAccess (object_storage_buckets_test.go)
  • Object Storage Object ACL Config Update
  • ^ tested -> TestUpdateObjectStorageBucketAccess
  • Object Storage Bucket Contents List
  • ^ tested ?
  • Object Storage Object URL Create
  • ^ tested ?
  • Object Storage TLS/SSL Cert Delete
  • ^ tested ?
  • Object Storage TLS/SSL Cert View
  • ^ tested ?
  • Object Storage TLS/SSL Cert Upload
  • ^ tested ?
  • Object Storage Cancel
  • ^ tested ?
  • Clusters List
  • ^ tested ?
  • Cluster View
  • ^ tested ?
  • Object Storage Keys List
  • ^ tested ?
  • Object Storage Key Create
  • ^ tested ?
  • Object Storage Key Revoke
  • ^ tested ?
  • Object Storage Key View
  • ^ tested ?
  • Object Storage Key Update
  • ^ tested ?
  • Object Storage Transfer View
  • ^ tested ?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment