2021-08-19 17:28:16 +00:00
# S3 API support
2021-08-19 17:16:49 +00:00
Reference:
* [AWS S3 API Reference ](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-api.pdf )
2021-08-19 17:28:16 +00:00
| | Legend |
|----|-------------------------------------------|
| 🟢 | Supported |
| 🟡 | Partially supported |
2021-09-15 11:14:06 +00:00
| 🔵 | Not supported yet, but will be in future |
| 🔴 | Not applicable or will never be supported |
2021-08-19 17:28:16 +00:00
## Object
| | Method | Comments |
|----|------------------------|-----------------------------------------|
| 🟢 | CopyObject | Done on gateway side |
| 🟢 | DeleteObject | |
| 🟢 | DeleteObjects | aka DeleteMultipleObjects |
| 🟢 | GetObject | |
2021-09-15 11:14:06 +00:00
| 🔴 | GetObjectTorrent | We don't plan implementing BT gateway |
2021-08-19 17:28:16 +00:00
| 🟢 | HeadObject | |
2021-12-15 13:57:14 +00:00
| 🟢 | ListParts | Parts loaded with MultipartUpload |
2021-08-19 17:28:16 +00:00
| 🟢 | ListObjects | |
| 🟢 | ListObjectsV2 | |
| 🟢 | PutObject | Content-MD5 header deprecated |
2021-09-15 11:14:06 +00:00
| 🔵 | SelectObjectContent | Need to have some Lambda to execute SQL |
| 🔵 | WriteGetObjectResponse | Waiting for Lambda to be developed |
2022-05-12 21:15:08 +00:00
| 🟢 | GetObjectAttributes | |
2021-08-19 17:28:16 +00:00
## ACL
For now there are some limitations:
2022-11-09 14:58:24 +00:00
* [Bucket policy ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html ) supports only one `Principal` per `Statement` .
Principal must be `"AWS": "*"` (to refer all users) or `"CanonicalUser": "0313b1ac3a8076e155a7e797b24f0b650cccad5941ea59d7cfd51a024a8b2a06bf"` (hex encoded public key of desired user).
* Resource in bucket policy is an array. Each item MUST contain bucket name, CAN contain object name (wildcards are not supported):
```json
{
"Statement": [
{
"Resource": [
"arn:aws:s3:::bucket",
"arn:aws:s3:::bucket/some/object"
]
}
]
}
```
2021-08-19 17:16:49 +00:00
* AWS conditions and wildcard are not supported in [resources ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html )
* Only `CanonicalUser` (with hex encoded public key) and `All Users Group` are supported in [ACL ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html )
2021-08-19 17:28:16 +00:00
| | Method | Comments |
|----|--------------|-----------------|
| 🟡 | GetObjectAcl | See Limitations |
| 🟡 | PutObjectAcl | See Limitations |
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
## Locking
2022-08-18 12:15:11 +00:00
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 | GetBucketObjectLockConfig |
| 🟡 | GetObjectRetention | |
| 🟡 | PutObjectLegalHold | |
| 🟢 | PutObjectLockConfiguration | PutBucketObjectLockConfig |
| 🟡 | PutObjectRetention | |
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
## Multipart
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
Should be supported soon.
2021-08-19 17:16:49 +00:00
2021-11-25 15:24:21 +00:00
| | Method | Comments |
|----|-------------------------|----------|
| 🟢 | AbortMultipartUpload | |
| 🟢 | CompleteMultipartUpload | |
| 🟢 | CreateMultipartUpload | |
| 🟢 | ListMultipartUploads | |
| 🟢 | ListParts | |
| 🟢 | UploadPart | |
| 🟢 | UploadPartCopy | |
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
## Tagging
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
| | Method | Comments |
|----|---------------------|----------|
2021-08-17 11:23:49 +00:00
| 🟢 | DeleteObjectTagging | |
2021-08-17 11:23:01 +00:00
| 🟢 | GetObjectTagging | |
2021-08-17 08:04:42 +00:00
| 🟢 | PutObjectTagging | |
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
## Versioning
See also `GetObject` and other method parameters.
2021-08-19 17:16:49 +00:00
2021-08-19 17:28:16 +00:00
| | Method | Comments |
|----|--------------------|--------------------------|
| 🟢 | ListObjectVersions | ListBucketObjectVersions |
2021-09-15 11:14:06 +00:00
| 🔵 | RestoreObject | |
2021-08-19 17:28:16 +00:00
## Bucket
| | Method | Comments |
|----|----------------------|-----------|
| 🟢 | CreateBucket | PutBucket |
| 🟢 | DeleteBucket | |
2022-01-11 12:33:09 +00:00
| 🟢 | GetBucketLocation | |
2021-08-19 17:28:16 +00:00
| 🟢 | HeadBucket | |
| 🟢 | ListBuckets | |
2021-09-15 11:14:06 +00:00
| 🔵 | PutPublicAccessBlock | |
2021-08-19 17:28:16 +00:00
## Acceleration
| | Method | Comments |
|----|----------------------------------|---------------------|
2021-09-15 11:14:06 +00:00
| 🔴 | GetBucketAccelerateConfiguration | GetBucketAccelerate |
| 🔴 | PutBucketAccelerateConfiguration | |
2021-08-19 17:28:16 +00:00
## ACL
2021-09-15 11:14:06 +00:00
| | Method | Comments |
|----|--------------|---------------------|
| 🟡 | GetBucketAcl | See ACL limitations |
| 🟡 | PutBucketAcl | See ACL Limitations |
2021-08-19 17:28:16 +00:00
## Analytics
| | Method | Comments |
|----|------------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketAnalyticsConfiguration | |
| 🔵 | GetBucketAnalyticsConfiguration | |
| 🔵 | ListBucketAnalyticsConfigurations | |
| 🔵 | PutBucketAnalyticsConfiguration | |
2021-08-19 17:28:16 +00:00
## CORS
| | Method | Comments |
|----|------------------|----------|
2021-11-03 14:48:58 +00:00
| 🟢 | DeleteBucketCors | |
| 🟢 | GetBucketCors | |
| 🟢 | PutBucketCors | |
2021-08-19 17:28:16 +00:00
## Encryption
| | Method | Comments |
|----|------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketEncryption | |
| 🔵 | GetBucketEncryption | |
| 🔵 | PutBucketEncryption | |
2021-08-19 17:28:16 +00:00
## Inventory
| | Method | Comments |
|----|------------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketInventoryConfiguration | |
| 🔵 | GetBucketInventoryConfiguration | |
| 🔵 | ListBucketInventoryConfigurations | |
| 🔵 | PutBucketInventoryConfiguration | |
2021-08-19 17:28:16 +00:00
## Lifecycle
| | Method | Comments |
|----|---------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketLifecycle | |
| 🔵 | GetBucketLifecycle | |
| 🔵 | GetBucketLifecycleConfiguration | |
| 🔵 | PutBucketLifecycle | |
| 🔵 | PutBucketLifecycleConfiguration | |
2021-08-19 17:28:16 +00:00
## Logging
| | Method | Comments |
|----|------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | GetBucketLogging | |
| 🔵 | PutBucketLogging | |
2021-08-19 17:28:16 +00:00
## Metrics
| | Method | Comments |
|----|----------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketMetricsConfiguration | |
| 🔵 | GetBucketMetricsConfiguration | |
| 🔵 | ListBucketMetricsConfigurations | |
| 🔵 | PutBucketMetricsConfiguration | |
2021-08-19 17:28:16 +00:00
## Notifications
| | Method | Comments |
|----|------------------------------------|---------------|
2021-09-15 11:14:06 +00:00
| 🔵 | GetBucketNotification | |
| 🔵 | GetBucketNotificationConfiguration | |
| 🔵 | ListenBucketNotification | non-standard? |
| 🔵 | PutBucketNotification | |
| 🔵 | PutBucketNotificationConfiguration | |
2021-08-19 17:28:16 +00:00
## Ownership controls
| | Method | Comments |
|----|-------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketOwnershipControls | |
| 🔵 | GetBucketOwnershipControls | |
| 🔵 | PutBucketOwnershipControls | |
2021-08-19 17:28:16 +00:00
## Policy and replication
2021-09-15 11:14:06 +00:00
| | Method | Comments |
|----|-------------------------|-----------------------------|
| 🔵 | DeleteBucketPolicy | |
| 🔵 | DeleteBucketReplication | |
| 🔵 | DeletePublicAccessBlock | |
| 🟡 | GetBucketPolicy | See ACL limitations |
| 🔵 | GetBucketPolicyStatus | |
| 🔵 | GetBucketReplication | |
| 🟢 | PostPolicyBucket | Upload file using POST form |
| 🟡 | PutBucketPolicy | See ACL limitations |
| 🔵 | PutBucketReplication | |
2021-08-19 17:28:16 +00:00
## Request payment
| | Method | Comments |
|----|-------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔴 | GetBucketRequestPayment | |
| 🔴 | PutBucketRequestPayment | |
2021-08-19 17:28:16 +00:00
## Tagging
| | Method | Comments |
|----|---------------------|----------|
2021-08-17 11:57:24 +00:00
| 🟢 | DeleteBucketTagging | |
| 🟢 | GetBucketTagging | |
| 🟢 | PutBucketTagging | |
2021-08-19 17:28:16 +00:00
## Tiering
| | Method | Comments |
|----|---------------------------------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketIntelligentTieringConfiguration | |
| 🔵 | GetBucketIntelligentTieringConfiguration | |
| 🔵 | ListBucketIntelligentTieringConfigurations | |
| 🔵 | PutBucketIntelligentTieringConfiguration | |
2021-08-19 17:28:16 +00:00
## Versioning
| | Method | Comments |
|----|---------------------|----------|
2021-08-19 06:55:22 +00:00
| 🟢 | GetBucketVersioning | |
| 🟢 | PutBucketVersioning | |
2021-08-19 17:28:16 +00:00
## Website
| | Method | Comments |
|----|---------------------|----------|
2021-09-15 11:14:06 +00:00
| 🔵 | DeleteBucketWebsite | |
| 🔵 | GetBucketWebsite | |
| 🔵 | PutBucketWebsite | |