Skip to main content

Swift API Compatibility

note
  • Only SWIFT to SWIFT replication is supported.
  • Chorus was tested with SWIFT vendors: Clyso Enterprise Storage (CES), Ceph RGW, and OpenStack Swift.

This table shows which Swift 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

Account​

OpenStack APIChorusCESOpenStack Swift
Get account metadata🟢🟢🟢
Create/update account metadata🟢🟢🟢
Delete account🔴🟢🟢

Container​

OpenStack APIChorusCESOpenStack Swift
List containers🟢🟢🟢
Create container🟢🟢🟢
Delete container🟢🟢🟢
Get container metadata🟢🟢🟢
Create/update container metadata🟡*🟢🟢
List objects🟢🟢🟢

Container ACLs​

OpenStack APIChorusCESOpenStack Swift
Container Read ACL (X-Container-Read)🟢🟡**🟢
Container Write ACL (X-Container-Write)🟢🟡**🟢

Container Versioning​

OpenStack APIChorusCESOpenStack Swift
X-Versions-Location🟢🟢🟢
X-Versions-Enabled🟢🟡🟢
X-History-Location🔴🔴🟢

Container Features​

OpenStack APIChorusCESOpenStack Swift
Temp URL keys (X-Container-Meta-Temp-URL-Key)🔴🟡🟢
Container Sync (X-Container-Sync-To)🔴🟢🟢
Storage Policy🔴🟡🟢
Static Website🔴🟢🟢

Object​

OpenStack APIChorusCESOpenStack Swift
Get object🟢🟢🟢
Create/replace object🟢🟢🟢
Copy object🟢🟢🟢
Delete object🟢🟢🟢
Get object metadata🟢🟢🟢
Create/update object metadata🟢🟢🟢

Large Objects​

OpenStack APIChorusCESOpenStack Swift
Static Large Object (SLO)🟢🟢🟢
Dynamic Large Object (DLO)🟢🟢🟢
Delete with multipart-manifest🟢🟢🟢

Object Features​

OpenStack APIChorusCESOpenStack Swift
Expiring objects (X-Delete-At, X-Delete-After)🟢🟢🟢
Object versioning🔴🟡🟢
Symlinks🔴🔴🟢
Temporary URL (account-level keys)🔴🟢🟢

Discoverability​

OpenStack APIChorusCESOpenStack Swift
/info endpoint🔴🟢🟢

Bulk Operations​

OpenStack APIChorusCESOpenStack Swift
Bulk delete🔴🟢🟢
Bulk extract (tar upload)🔴🟢🟢

* Container metadata limitations: Chorus does not replicate:

** Swift ACLs: CES/Ceph RGW supports a subset of Swift ACLs. Chorus replicates ACL headers but behavior may differ between providers.

  • Temp URL keys (not supported by CES/Ceph RGW at container level)
  • X-History-Location (not supported by CES/Ceph RGW)
  • Container Sync headers (X-Container-Sync-To, X-Container-Sync-Key)
  • Storage Policy (storage-specific, cannot be mapped between providers)

Notes​

Account deletion​

Chorus does not replicate account deletions because this operation is typically restricted to administrators and requires special permissions.

Object versioning​

Swift versioning (X-Versions-Enabled) relies on middleware that differs between OpenStack Swift and CES/Ceph RGW implementations. Chorus replicates versioning container settings but version behavior may differ between providers.

Cross-object dependencies​

Swift supports objects with cross-dependencies (SLO manifests referencing segments, DLO manifests, symlinks). Chorus handles these by retrying operations until all dependencies are resolved.