S3 API compatibility

Supported S3 APIs

MethodsNotes

GET Service

cegedim.Cloud Object Storage Service supports marker and max-keys parameters to enable paging of bucket list.

GET /?marker=<bucket>&max-keys=<num>

For example:

GET /?marker=mybucket&max-keys=40

DELETE Bucket

DELETE Bucket cors

DELETE Bucket lifecycle

Only the expiration part is supported in lifecycle.

Policies related to archiving (AWS Glacier like) are not supported.

Lifecycle is not supported on file system-enabled buckets.

DELETE Bucket policy

GET Bucket (List Objects)

For file system-enabled buckets, / is the only supported delimiter when listing objects in the bucket.

GET Bucket cors

GET Bucket acl

GET Bucket lifecycle

Only the expiration part is supported in lifecycle.

Policies related to archiving (AWS Glacier like) are not supported.

Lifecycle is not supported on file system-enabled buckets.

GET Bucket policy

GET Bucket Object versions

GET Bucket versioning

HEAD Bucket

List Multipart Uploads

PUT Bucket

Where PUT is performed on an existing bucket, refer to Behavior where bucket already exists.

PUT Bucket cors

PUT Bucket acl

PUT Bucket lifecycle

Only the expiration part is supported in lifecycle.

Policies related to archiving (AWS Glacier like) are not supported.

Lifecycle is not supported on file system-enabled buckets.

PUT Bucket policy

Bucket policies cannot be configured for operations that are not supported by cegedim.cloud Object Storage Service.

PUT Bucket versioning

DELETE Object

Delete Multiple Objects

GET Object

GET Object ACL

HEAD Object

PUT Object

Supports chunked PUT

PUT Object acl

PUT Object - Copy

OPTIONS object

Initiate Multipart Upload

Upload Part

Upload Part - Copy

Complete Multipart Upload

cegedim.cloud Object Storage Service returns an ETag of 00 for this request. This differs from the Amazon S3 response.

Abort Multipart Upload

List Parts

Unsupported S3 APIs

MethodsNotes

DELETE Bucket tagging

DELETE Bucket website

GET Bucket location

cegedim.cloud Object Storage Service is only aware of a single region.

GET Bucket logging

GET Bucket notification

Notification is only defined for reduced redundancy feature in S3. cegedim.cloud Object Storage Service does not currently support notifications.

GET Bucket tagging

GET Bucket requestPayment

cegedim.cloud Object Storage Service uses its own model for payments.

GET Bucket website

PUT Bucket logging

PUT Bucket notification

Notification is only defined for the reduced redundancy feature in S3. cegedim.cloud Object Storage Service does not currently support notifications.

PUT Bucket tagging

PUT Bucket requestPayment

cegedim.cloud Object Storage Service uses its own model for payments.

PUT Bucket website

Object APIs

GET Object torrent

POST Object

POST Object restore

This operation is related to AWS Glacier, which is not supported.

Specific behaviors

Specific behaviors compared to AWS API :

Creation of buckets using names with fewer than three characters fails with :

400 Bad Request, InvalidBucketName

When creating a bucket or object with empty content, cegedim.cloud Object Storage Service returns 400 invalid content-length value, which differs from AWS which returns 400 Bad Request.


Copying an object to another bucket that indexes the same user metadata index key but with a different datatype is not supported and fails with 500 Server Error.d


When listing the objects in a bucket, if you use a prefix and delimiter but supply an invalid marker, cegedim.cloud Object Storage Service throws 500 Server Error, or 400 Bad Request for a file system-enabled bucket.

However, AWS returns 200 OK and the objects are not listed.


For versioning enabled buckets, cegedim.cloud Object Storage Service does not create a delete marker when a deleted object is deleted again.

This is different from AWS, which always inserts delete marker for deleting deleted objects in versioning enabled buckets.

This change in behavior is only applicable when the deleted object is deleted again from owner zone.


When an attempt is made to create a bucket with a name that already exists, the behavior of cegedim.cloud Object Storage Service can differ from AWS.

AWS always returns 409 Conflict when a user who has FULL_CONTROL permissions on the bucket, or any other permissions, attempts to recreate the bucket. When an Object User who has FULL_CONTROL or WRITE_ACP on the bucket attempts to recreate the bucket,

cegedim.cloud Object Storage Service returns 200 OK and the ACL is overwritten, however, the owner is not changed. An Object User with WRITE/READ permissions will get 409 Conflict if they attempt to recreate a bucket.

Where an attempt to recreate a bucket is made by the bucket owner, Object Storage Service returns 200 OK and overwrites the ACL. AWS behaves in the same way.

Where a user has no access privileges on the bucket, an attempt to recreate the bucket throws a 409 Conflict error. AWS behaves in the same way.

Last updated