Jump to: navigation, search

Difference between revisions of "Swift/APIFeatureComparison"

Line 84: Line 84:
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html DELETE Bucket lifecycle]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html DELETE Bucket lifecycle]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html DELETE Bucket policy]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html DELETE Bucket policy]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html DELETE Bucket website]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html DELETE Bucket website]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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)]  
|  /!\
 
 
|  /!\  
 
|  /!\  
 +
| 2006-03-01*
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html GET Bucket policy]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html GET Bucket policy]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html GET Bucket requestPayment]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html GET Bucket requestPayment]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html GET Bucket versioning]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html GET Bucket versioning]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html GET Bucket website]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html GET Bucket website]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html HEAD Bucket]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html HEAD Bucket]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html List Multipart Uploads]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html List Multipart Uploads]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html PUT Bucket policy]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html PUT Bucket policy]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html PUT Bucket logging]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html PUT Bucket logging]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html PUT Bucket notification]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html PUT Bucket notification]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html PUT Bucket requestPayment]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html PUT Bucket requestPayment]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html PUT Bucket versioning]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html PUT Bucket versioning]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html PUT Bucket website]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html PUT Bucket website]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|}
 
|}
 +
 +
* 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.
  
 
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  
Line 196: Line 197:
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html GET Object ACL]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html GET Object ACL]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html GET Object torrent]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html GET Object torrent]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [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]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html PUT Object]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html PUT Object]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html PUT Object acl]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html PUT Object acl]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html PUT Object - Copy]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html PUT Object - Copy]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html Initiate Multipart Upload]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html Initiate Multipart Upload]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html Upload Part]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html Upload Part]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html Upload Part - Copy]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html Upload Part - Copy]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html Complete Multipart Upload]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html Complete Multipart Upload]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html Abort Multipart Upload]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html Abort Multipart Upload]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|-
 
|-
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html List Parts]
+
| [http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html List Parts]  
 
|  /!\  
 
|  /!\  
 
|  /!\  
 
|  /!\  

Revision as of 07:18, 15 June 2012

S3/Swift REST API Comparison Matrix

This page attempts to enumerate how OpenStack, Eucalyptus and CloudStack compare in regards to AWS S3 REST API support. Corrections/contributions welcome.

(./) == Known to be supported

X == Known not to be supported

/!\ == Support status not yet determined

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.

General S3 REST API Support

Feature Eucalyptus OpenStack
List Bucket Objects (./) (./)
Bucket ACLs (./) (./)
Bucket Lifecycle /!\ (./)
Bucket Policy /!\ X
Bucket Location /!\ /!\
Bucket Logging /!\ X
Bucket Notification /!\ X
Bucket Object Versions /!\ (./)
Bucket Request Payment /!\ X
Bucket Versioning X 1 /!\
Bucket Website /!\ (./)



  1. https://bugs.launchpad.net/eucalyptus/+bug/751309



Amazon S3 REST API Compatability

Amazon S3 Bucket operations are referenced here

S3 REST API method Eucalyptus OpenStack
DELETE Bucket /!\ /!\
DELETE Bucket lifecycle /!\ /!\
DELETE Bucket policy /!\ /!\
DELETE Bucket website /!\ /!\
GET Bucket (List Objects) /!\ 2006-03-01*
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 /!\ /!\
  • 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.

Amazon S3 Object operations are referenced here

S3 REST API method Eucalyptus OpenStack
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 /!\ /!\