S3/Swift REST API Comparison Matrix

General compatibility statement

S3 is a product from Amazon, and as such, it includes “features” that are outside the scope of Swift itself. For example, Swift doesn’t have anything to do with billing, whereas S3 buckets can be tied to Amazon’s billing system. Similarly, log delivery is a service outside of Swift. It’s entirely possible for a Swift deployment to provide that functionality, but it is not part of Swift itself. Likewise, a Swift deployment can provide similar geographic availability as S3, but this is tied to the deployer’s willingness to build the infrastructure and support systems to do so.

Amazon S3 operations

S3 REST API method

Category

Swift S3 API

GET Object

Core-API

Yes

HEAD Object

Core-API

Yes

PUT Object

Core-API

Yes

PUT Object Copy

Core-API

Yes

DELETE Object

Core-API

Yes

Initiate Multipart Upload

Core-API

Yes

Upload Part

Core-API

Yes

Upload Part Copy

Core-API

Yes

Complete Multipart Upload

Core-API

Yes

Abort Multipart Upload

Core-API

Yes

List Parts

Core-API

Yes

GET Object ACL

Core-API

Yes

PUT Object ACL

Core-API

Yes

PUT Bucket

Core-API

Yes

GET Bucket List Objects

Core-API

Yes

HEAD Bucket

Core-API

Yes

DELETE Bucket

Core-API

Yes

List Multipart Uploads

Core-API

Yes

GET Bucket acl

Core-API

Yes

PUT Bucket acl

Core-API

Yes

Object tagging

Core-API

Yes

Versioning

Versioning

No

Bucket notification

Notifications

No

Bucket Lifecycle [1] [2] [3] [4] [5] [6]

Bucket Lifecycle

No

Bucket policy

Advanced ACLs

No

Public website [7] [8] [9] [10]

Public Website

No

Billing [11] [12]

Billing

No

GET Bucket location

Advanced Feature

Yes

Delete Multiple Objects

Advanced Feature

Yes

GET Object torrent

Advanced Feature

No

Bucket inventory

Advanced Feature

No

GET Bucket service

Advanced Feature

No

Bucket accelerate

CDN Integration

No