Jump to: navigation, search

Difference between revisions of "Swift/APIFeatureComparison"

(Amazon S3 REST API Compatability)
Line 1: Line 1:
  
 
= S3/Swift REST API Comparison Matrix =
 
= S3/Swift REST API Comparison Matrix =
This page attempts to enumerate how [[OpenStack]], and Eucalyptus compare in regards to AWS S3 REST API support.  The OpenStack Swift results are based on Swift3 v1.8 and we loaded on Nov 3, 2015.  Corrections/contributions welcome. 
 
 
(./) == Known to be supported
 
 
<span style="font-size: large; color: white; background: red">X</span> == Known not to be supported
 
 
/!\ == Support status not yet determined
 
  
 
== General compatibility statement ==
 
== 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 deployed 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.
 
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 deployed 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.
  
== General S3 REST API Support ==
 
{| border="1" cellpadding="2" cellspacing="0"
 
| Feature
 
| [[OpenStack]]
 
|-
 
| List Bucket Objects
 
|  (./)
 
|-
 
| Bucket ACLs
 
|  (./) 2,3
 
|-
 
| Bucket Lifecycle
 
|<span style="font-size: large; color: white; background: red">|X</span>
 
|-
 
| Bucket Policy
 
|<span style="font-size: large; color: white; background: red">|X</span>
 
|-
 
| Bucket Location
 
|  (./)
 
|-
 
| Bucket Logging
 
|<span style="font-size: large; color: white; background: red">|X</span>
 
|-
 
| Bucket Notification
 
|<span style="font-size: large; color: white; background: red">|X</span>
 
|-
 
| Bucket Object Versions
 
|  X
 
|-
 
| Bucket Request Payment
 
|<span style="font-size: large; color: white; background: red">|X</span>
 
|-
 
| Bucket Versioning
 
|  X
 
|-
 
| Bucket Website
 
|  X
 
|}
 
 
 
<pre><nowiki>
 
</nowiki></pre>
 
 
1. https://bugs.launchpad.net/eucalyptus/+bug/751309 "Removing Eucalyptus column as data is not considered up to date."
 
 
2. https://bugs.launchpad.net/swift3/+bug/1381548
 
 
3. https://bugs.launchpad.net/swift3/+bug/1381735
 
 
4. https://bugs.launchpad.net/swift3/+bug/1382290
 
<pre><nowiki>
 
</nowiki></pre>
 
  
 
== Amazon S3 REST API Compatability ==
 
== Amazon S3 REST API Compatability ==
Line 69: Line 10:
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
 
| S3 REST API method  
 
| S3 REST API method  
| [[OpenStack]]
+
| Swift
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html DELETE Bucket]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html DELETE Bucket]  
| (./)
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html DELETE Bucket lifecycle]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html DELETE Bucket lifecycle]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html DELETE Bucket policy]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html DELETE Bucket policy]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html DELETE Bucket website]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html DELETE Bucket website]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html GET Bucket (List Objects)]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html GET Bucket (List Objects)]  
| (./)
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html GET Bucket acl]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html GET Bucket acl]  
| (./)
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html GET Bucket lifecycle]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html GET Bucket lifecycle]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html GET Bucket policy]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html GET Bucket policy]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html GET Bucket location]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html GET Bucket location]  
| (./) 
+
|    
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html GET Bucket logging]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html GET Bucket logging]  
| (./) 
+
|    
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html GET Bucket notification]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html GET Bucket notification]  
| X
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETVersion.html GET Bucket Object versions]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETVersion.html GET Bucket Object versions]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html GET Bucket requestPayment]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html GET Bucket requestPayment]  
| X
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html GET Bucket versioning]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html GET Bucket versioning]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html GET Bucket website]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html GET Bucket website]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html HEAD Bucket]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html HEAD Bucket]  
|<span style="font-size: large; color: white; background: red">|(./) </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html List Multipart Uploads]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html List Multipart Uploads]  
|<span style="font-size: large; color: white; background: red">|(./)</span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html PUT Bucket]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html PUT Bucket]  
| (./)
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html PUT Bucket acl]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html PUT Bucket acl]  
| (./)
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html PUT Bucket lifecycle]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html PUT Bucket lifecycle]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html PUT Bucket policy]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html PUT Bucket policy]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html PUT Bucket logging]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html PUT Bucket logging]  
| X
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html PUT Bucket notification]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html PUT Bucket notification]  
| X
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html PUT Bucket requestPayment]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html PUT Bucket requestPayment]  
| X
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html PUT Bucket versioning]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html PUT Bucket versioning]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html PUT Bucket website]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html PUT Bucket website]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|}
 
|}
 
"Removing Eucalyptus column as data is not considered up to date."
 
5. This version of Amazon API supports access to buckets using a subdomain (i.e. bucket.s3.amazonaws.com), whereas [[OpenStack]] Swift3 relies on a sub-directory (eg swift.domain/bucket), which renders some tools hardcoded to use "new style" buckets unable to contact Swift in the right way, despite its ability to support correct responses.
 
  
 
6. https://bugs.launchpad.net/swift3/+bug/1382137
 
  
 
Amazon S3 Object operations are referenced [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketOps.html here]
 
Amazon S3 Object operations are referenced [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketOps.html here]
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
 
| S3 REST API method  
 
| S3 REST API method  
| [[OpenStack]]
+
| Swift
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html DELETE Object]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html DELETE Object]  
| (./)  5
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html Delete Multiple Objects]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html Delete Multiple Objects]  
| (./) 
+
|    
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html GET Object]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html GET Object]  
| (./)  5
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html GET Object ACL]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html GET Object ACL]  
| X 4
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html GET Object torrent]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html GET Object torrent]  
| X
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html HEAD Object]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html HEAD Object]  
| (./) 
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOST.html POST Object]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOST.html POST Object]  
|<span style="font-size: large; color: white; background: red">|X</span>
+
|  
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html PUT Object]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html PUT Object]  
| (./)  5
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html PUT Object acl]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html PUT Object acl]  
|<span style="font-size: large; color: white; background: red">|X 4</span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html PUT Object - Copy]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html PUT Object - Copy]  
| (./)  5
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html Initiate Multipart Upload]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html Initiate Multipart Upload]  
|<span style="font-size: large; color: white; background: red">|(./) </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html Upload Part]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html Upload Part]  
|<span style="font-size: large; color: white; background: red">|(./) </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html Upload Part - Copy]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html Upload Part - Copy]  
|<span style="font-size: large; color: white; background: red">|(./)  </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html Complete Multipart Upload]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html Complete Multipart Upload]  
|<span style="font-size: large; color: white; background: red">|(./)  </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html Abort Multipart Upload]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html Abort Multipart Upload]  
|<span style="font-size: large; color: white; background: red">|(./)  </span>
+
|
 
|-
 
|-
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html List Parts]  
 
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html List Parts]  
|<span style="font-size: large; color: white; background: red">|(./)  </span>
+
|
 
|}
 
|}
 
"Removing Eucalyptus column as data is not considered up to date."
 
5. This version of Amazon API supports access to buckets using a subdomain (i.e. bucket.s3.amazonaws.com), whereas [[OpenStack]]  Swift3 relies on a sub-directory (eg swift.domain/bucket), which  renders some tools hardcoded to use "new style" buckets unable to  contact Swift in the right way, despite its ability to support correct  responses.
 
  
 
[[Category:Swift]]
 
[[Category:Swift]]

Revision as of 16:41, 14 September 2017

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 deployed 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 REST API Compatability

Amazon S3 Bucket operations are referenced here

S3 REST API method Swift
DELETE Bucket
DELETE Bucket lifecycle
DELETE Bucket policy
DELETE Bucket website
GET Bucket (List Objects)
GET Bucket acl
GET Bucket lifecycle
GET Bucket policy
GET Bucket location
GET Bucket logging
GET Bucket notification
GET Bucket Object versions
GET Bucket requestPayment
GET Bucket versioning
GET Bucket website
HEAD Bucket
List Multipart Uploads
PUT Bucket
PUT Bucket acl
PUT Bucket lifecycle
PUT Bucket policy
PUT Bucket logging
PUT Bucket notification
PUT Bucket requestPayment
PUT Bucket versioning
PUT Bucket website


Amazon S3 Object operations are referenced here

S3 REST API method Swift
DELETE Object
Delete Multiple Objects
GET Object
GET Object ACL
GET Object torrent
HEAD Object
POST Object
PUT Object
PUT Object acl
PUT Object - Copy
Initiate Multipart Upload
Upload Part
Upload Part - Copy
Complete Multipart Upload
Abort Multipart Upload
List Parts