S3 API Compatibility
note
- Only S3 to S3 replication is supported.
- Chorus was tested with S3 vendors: Clyso Enterprise Storage (CES), Ceph RGW, AWS S3, Minio. But it should work with any S3-compatible storage.
This table shows which S3 API operations Chorus replicates between storages. The Chorus column indicates whether changes made via that API are captured and replicated to follower storages.
- 🟢 fully supported - operation is replicated
- 🟡 partially supported - operation is replicated with limitations
- 🔴 not supported - operation is not replicated
Bucket​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| CreateBucket | 🟢 | 🟢 | 🟢 | 🟢 |
| DeleteBucket | 🟢 | 🟢 | 🟢 | 🟢 |
| HeadBucket | 🟢 | 🟢 | 🟢 | 🟢 |
| ListBuckets | 🟢 | 🟢 | 🟢 | 🟢 |
| GetBucketLocation | 🟢 | 🟢 | 🟢 | 🟢 |
Bucket Tagging​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketTagging | 🟢 | 🟢 | 🟢 | 🟢 |
| PutBucketTagging | 🟢 | 🟢 | 🟢 | 🟢 |
| DeleteBucketTagging | 🟢 | 🟢 | 🟢 | 🟢 |
Bucket Lifecycle​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketLifecycle | 🔴 | 🟢 | 🟢 | 🔴 |
| DeleteBucketLifecycle | 🔴 | 🟢 | 🟢 | 🔴 |
| PutBucketLifecycle | 🔴 | 🟢 | 🟢 | 🔴 |
| GetBucketLifecycleConfiguration | 🔴 | 🟢 | 🟢 | 🔴 |
| PutBucketLifecycleConfiguration | 🔴 | 🟢 | 🟢 | 🔴 |
Bucket Policy​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketPolicy | 🔴 | 🟢 | 🟢 | 🔴 |
| PutBucketPolicy | 🔴 | 🟢 | 🟢 | 🔴 |
| DeleteBucketPolicy | 🔴 | 🟢 | 🟢 | 🔴 |
| GetBucketPolicyStatus | 🔴 | 🟢 | 🟢 | 🔴 |
Bucket ACL​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketAcl | 🟢 | 🟢 | 🟢 | 🔴 |
| PutBucketAcl | 🟢 | 🟢 | 🟢 | 🔴 |
Bucket Versioning​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketVersioning | 🟢* | 🟢 | 🟢 | 🔴 |
| PutBucketVersioning | 🟢* | 🟢 | 🟢 | 🔴 |
* Versioning support: Chorus migrates versioned objects for all S3-compatible storages. However, retaining the original object version ID is only supported for CES, Ceph, and MinIO. For other providers, objects are migrated with new version IDs assigned by the destination storage.
Bucket Website​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketWebsite | 🔴 | 🟢 | 🔴 | 🔴 |
| PutBucketWebsite | 🔴 | 🟢 | 🔴 | 🔴 |
| DeleteBucketWebsite | 🔴 | 🟢 | 🔴 | 🔴 |
Bucket Replication​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketReplication | 🔴 | 🟡 | 🔴 | 🔴 |
| PutBucketReplication | 🔴 | 🟡 | 🔴 | 🔴 |
| DeleteBucketReplication | 🔴 | 🟡 | 🔴 | 🔴 |
Bucket Notification​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketNotification | 🔴 | 🟡 | 🔴 | 🔴 |
| PutBucketNotification | 🔴 | 🟡 | 🔴 | 🔴 |
| GetBucketNotificationConfiguration | 🔴 | 🟡 | 🔴 | 🔴 |
| PutBucketNotificationConfiguration | 🔴 | 🟡 | 🔴 | 🔴 |
Bucket Encryption​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketEncryption | 🔴 | 🔴 | 🔴 | 🔴 |
| PutBucketEncryption | 🔴 | 🔴 | 🔴 | 🔴 |
| DeleteBucketEncryption | 🔴 | 🔴 | 🔴 | 🔴 |
Bucket Request Payment​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetBucketRequestPayment | 🔴 | 🟢 | 🔴 | 🔴 |
| PutBucketRequestPayment | 🔴 | 🟢 | 🔴 | 🔴 |
Bucket Misc​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| CRUD MetricsConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD Cors | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD AnalyticsConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD IntelligentTieringConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD AccelerateConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD Logging | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD OwnershipControls | 🔴 | 🔴 | 🔴 | 🔴 |
| CRUD InventoryConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
Object​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetObject | 🟢 | 🟢 | 🟢 | 🟢 |
| HeadObject | 🟢 | 🟢 | 🟢 | 🟢 |
| PutObject | 🟢 | 🟢 | 🟢 | 🟢 |
| DeleteObject | 🟢 | 🟢 | 🟢 | 🟢 |
| DeleteObjects | 🟢 | 🟢 | 🟢 | 🟢 |
| ListObjects | 🟢 | 🟢 | 🟢 | 🟢 |
| ListObjectsV2 | 🟢 | 🟢 | 🟢 | 🟢 |
| GetObjectAttributes | 🟢 | 🟢 | 🟢 | 🟢 |
| CopyObject | 🟢 | 🟢 | 🟢 | 🔴 |
| ListObjectVersions | 🟢* | 🟢 | 🟢 | 🔴 |
| RestoreObject | 🔴 | 🔴 | 🟢 | 🟢 |
| SelectObjectContent | 🔴 | 🤷 | 🤷 | 🤷 |
| WriteGetObjectResponse | 🔴 | 🤷 | 🤷 | 🤷 |
Object Multipart​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| CreateMultipartUpload | 🟢 | 🟢 | 🟢 | 🟢 |
| UploadPart | 🟢 | 🟢 | 🟢 | 🟢 |
| CompleteMultipartUpload | 🟢 | 🟢 | 🟢 | 🟢 |
| AbortMultipartUpload | 🟢 | 🟢 | 🟢 | 🟢 |
| ListMultipartUploads | 🟢 | 🟢 | 🟢 | 🟢 |
| ListParts | 🟢 | 🟢 | 🟢 | 🟢 |
| UploadPartCopy | 🟢 | 🟢 | 🟢 | 🟢 |
Object ACL​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetObjectAcl | 🟢 | 🟢 | 🟢 | 🔴 |
| PutObjectAcl | 🟢 | 🟢 | 🟢 | 🔴 |
Object Tagging​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetObjectTagging | 🟢 | 🟢 | 🟢 | 🔴 |
| PutObjectTagging | 🟢 | 🟢 | 🟢 | 🔴 |
| DeleteObjectTagging | 🟢 | 🟢 | 🟢 | 🔴 |
Object Misc​
| AWS APIÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | Chorus | CESÂ Â | DOÂ Â Â Â | Oracle |
|---|---|---|---|---|
| GetPublicAccessBlock | 🔴 | 🔴 | 🔴 | 🔴 |
| PutPublicAccessBlock | 🔴 | 🔴 | 🔴 | 🔴 |
| DeletePublicAccessBlock | 🔴 | 🔴 | 🔴 | 🔴 |
| GetObjectTorrent | 🔴 | 🔴 | 🔴 | 🔴 |
| GetObjectRetention | 🔴 | 🔴 | 🔴 | 🔴 |
| PutObjectRetention | 🔴 | 🔴 | 🔴 | 🔴 |
| GetObjectLegalHold | 🔴 | 🔴 | 🔴 | 🔴 |
| PutObjectLegalHold | 🔴 | 🔴 | 🔴 | 🔴 |
| GetObjectLockConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |
| PutObjectLockConfiguration | 🔴 | 🔴 | 🔴 | 🔴 |