245 lines
9.3 KiB
Markdown
245 lines
9.3 KiB
Markdown
# S3 API support
|
|
|
|
Reference:
|
|
|
|
* [AWS S3 API Reference](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-api.pdf)
|
|
|
|
| | 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:
|
|
|
|
| | Method | Comments |
|
|
|-----|--------------|-----------------------------------|
|
|
| š¢ | GetObjectAcl | Objects can have only private acl |
|
|
| š“ | PutObjectAcl | Use PutBucketPolicy instead |
|
|
|
|
## Locking
|
|
|
|
For now there are some limitations:
|
|
|
|
* Retention period can't be shortened, only extended.
|
|
* You can't delete locks or object with unexpired lock.
|
|
|
|
| | Method | Comments |
|
|
|-----|----------------------------|-------------------------------|
|
|
| š” | GetObjectLegalHold | |
|
|
| š¢ | GetObjectLockConfiguration | aka GetBucketObjectLockConfig |
|
|
| š” | GetObjectRetention | |
|
|
| š” | PutObjectLegalHold | |
|
|
| š¢ | PutObjectLockConfiguration | aka PutBucketObjectLockConfig |
|
|
| š” | PutObjectRetention | |
|
|
|
|
## Multipart
|
|
|
|
CompleteMultipartUpload operations may take long time to complete. Gateway
|
|
sends whitespace characters to keep connection with the client alive. In this
|
|
case, gateway is unable to set proper HTTP headers like `X-Amz-Version-Id`.
|
|
|
|
| | 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 | Only canned acl is supported |
|
|
| š” | PutBucketAcl | Only canned acl is supported |
|
|
|
|
## 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 | |
|
|
| šµ | GetBucketPolicyStatus | |
|
|
| šµ | GetBucketReplication | |
|
|
| š¢ | PostPolicyBucket | Upload file using POST form |
|
|
| š” | PutBucketPolicy | Conditions are not supported |
|
|
| šµ | 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 | |
|