frostfs-s3-gw/docs/aws_s3_compat.md
Angira Kekteeva 7d69f9f74b [#432] Add get-object-attributes
Signed-off-by: Angira Kekteeva <kira@nspcc.ru>
2022-05-13 11:42:43 +03:00

9.1 KiB

S3 API support

Reference:

Legend
🟢 Supported
🟡 Partially supported
🔵 Not supported yet, but will be in future
🔴 Not applicable or will never be supported

Object

Method Comments
🟢 CopyObject Done on gateway side
🟢 DeleteObject
🟢 DeleteObjects aka DeleteMultipleObjects
🟢 GetObject
🔴 GetObjectTorrent We don't plan implementing BT gateway
🟢 HeadObject
🟢 ListParts Parts loaded with MultipartUpload
🟢 ListObjects
🟢 ListObjectsV2
🟢 PutObject Content-MD5 header deprecated
🔵 SelectObjectContent Need to have some Lambda to execute SQL
🔵 WriteGetObjectResponse Waiting for Lambda to be developed
🟢 GetObjectAttributes

ACL

For now there are some limitations:

  • Bucket policy supports only one Principal (type AWS) per Statement. To refer all users use "AWS": "*"
  • AWS conditions and wildcard are not supported in resources
  • Only CanonicalUser (with hex encoded public key) and All Users Group are supported in ACL
Method Comments
🟡 GetObjectAcl See Limitations
🟡 PutObjectAcl See Limitations

Locking

Method Comments
🟢 GetObjectLegalHold
🟢 GetObjectLockConfiguration GetBucketObjectLockConfig
🟢 GetObjectRetention
🟢 PutObjectLegalHold
🟢 PutObjectLockConfiguration PutBucketObjectLockConfig
🟢 PutObjectRetention

Multipart

Should be supported soon.

Method Comments
🟢 AbortMultipartUpload
🟢 CompleteMultipartUpload
🟢 CreateMultipartUpload
🟢 ListMultipartUploads
🟢 ListParts
🟢 UploadPart
🟢 UploadPartCopy

Tagging

Method Comments
🟢 DeleteObjectTagging
🟢 GetObjectTagging
🟢 PutObjectTagging

Versioning

See also GetObject and other method parameters.

Method Comments
🟢 ListObjectVersions ListBucketObjectVersions
🔵 RestoreObject

Bucket

Method Comments
🟢 CreateBucket PutBucket
🟢 DeleteBucket
🟢 GetBucketLocation
🟢 HeadBucket
🟢 ListBuckets
🔵 PutPublicAccessBlock

Acceleration

Method Comments
🔴 GetBucketAccelerateConfiguration GetBucketAccelerate
🔴 PutBucketAccelerateConfiguration

ACL

Method Comments
🟡 GetBucketAcl See ACL limitations
🟡 PutBucketAcl See ACL Limitations

Analytics

Method Comments
🔵 DeleteBucketAnalyticsConfiguration
🔵 GetBucketAnalyticsConfiguration
🔵 ListBucketAnalyticsConfigurations
🔵 PutBucketAnalyticsConfiguration

CORS

Method Comments
🟢 DeleteBucketCors
🟢 GetBucketCors
🟢 PutBucketCors

Encryption

Method Comments
🔵 DeleteBucketEncryption
🔵 GetBucketEncryption
🔵 PutBucketEncryption

Inventory

Method Comments
🔵 DeleteBucketInventoryConfiguration
🔵 GetBucketInventoryConfiguration
🔵 ListBucketInventoryConfigurations
🔵 PutBucketInventoryConfiguration

Lifecycle

Method Comments
🔵 DeleteBucketLifecycle
🔵 GetBucketLifecycle
🔵 GetBucketLifecycleConfiguration
🔵 PutBucketLifecycle
🔵 PutBucketLifecycleConfiguration

Logging

Method Comments
🔵 GetBucketLogging
🔵 PutBucketLogging

Metrics

Method Comments
🔵 DeleteBucketMetricsConfiguration
🔵 GetBucketMetricsConfiguration
🔵 ListBucketMetricsConfigurations
🔵 PutBucketMetricsConfiguration

Notifications

Method Comments
🔵 GetBucketNotification
🔵 GetBucketNotificationConfiguration
🔵 ListenBucketNotification non-standard?
🔵 PutBucketNotification
🔵 PutBucketNotificationConfiguration

Ownership controls

Method Comments
🔵 DeleteBucketOwnershipControls
🔵 GetBucketOwnershipControls
🔵 PutBucketOwnershipControls

Policy and replication

Method Comments
🔵 DeleteBucketPolicy
🔵 DeleteBucketReplication
🔵 DeletePublicAccessBlock
🟡 GetBucketPolicy See ACL limitations
🔵 GetBucketPolicyStatus
🔵 GetBucketReplication
🟢 PostPolicyBucket Upload file using POST form
🟡 PutBucketPolicy See ACL limitations
🔵 PutBucketReplication

Request payment

Method Comments
🔴 GetBucketRequestPayment
🔴 PutBucketRequestPayment

Tagging

Method Comments
🟢 DeleteBucketTagging
🟢 GetBucketTagging
🟢 PutBucketTagging

Tiering

Method Comments
🔵 DeleteBucketIntelligentTieringConfiguration
🔵 GetBucketIntelligentTieringConfiguration
🔵 ListBucketIntelligentTieringConfigurations
🔵 PutBucketIntelligentTieringConfiguration

Versioning

Method Comments
🟢 GetBucketVersioning
🟢 PutBucketVersioning

Website

Method Comments
🔵 DeleteBucketWebsite
🔵 GetBucketWebsite
🔵 PutBucketWebsite