S3 API supported and unsupported features

ECS supports a subset of the Amazon S3 REST API.

The following sections detail the supported and unsupported APIs:

Supported S3 APIs

Table 1. Supported S3 APIs
Feature Notes
GET Service ECS supports marker and max-keys parameters to enable paging of bucket list.
GET /?marker=<bucket>&limit=<num>
For example:
GET /?marker=mybucket&limit=40
DELETE Bucket -
DELETE Bucket cors -
DELETE Bucket life cycle Only the expiration part is supported in life cycle. Policies that are related to archiving (AWS Glacier) 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 (List Objects) Version 2 For file system-enabled buckets, / is the only supported delimiter when listing objects in the bucket.
GET Bucket cors -
GET Bucket acl -
GET Bucket life cycle Only the expiration part is supported in life cycle. Policies that are related to archiving (AWS Glacier) 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 life cycle Only the expiration part is supported in life cycle. Policies that are related to archiving (AWS Glacier) are not supported. Lifecycle is not supported on file system-enabled buckets.
PUT Bucket policy Cannot configure the bucket policies for file system-enabled or CAS-enabled buckets. Cannot configure the bucket policies for operations that ECS does not support. More information about bucket policy support is provided in Bucket policy support.
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 -
GET Object tagging -
PUT Object tagging -
DELETE Object tagging -
Initiate Multipart Upload -
Upload Part -
Upload Part - Copy -
Complete Multipart Upload ECS returns an ETag of 00 for this request, which differs from the Amazon S3 response.
Abort Multipart Upload -
List Parts -
NOTE: 
  • 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, ECS 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.
  • When listing the objects in a bucket, if you use a prefix and delimiter but supply an invalid marker, ECS 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.
Table 2. Additional features
Feature Notes
Presigned URLs ECS supports use of presigned URLs to grant access to objects without needing credentials. More information can be found at: https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html.
Chunked PUT PUT operation can be used to upload objects in chunks, which enable content to be sent before the total size of the payload is known. Chunked transfer uses the Transfer-Encoding header (Transfer-Encoding: chunked) to specify that content is transmitted in chunks.

Unsupported S3 APIs

Table 3. Unsupported S3 APIs
Feature Notes
DELETE Bucket tagging -
DELETE Bucket website -
GET Bucket location ECS is only aware of a single Virtual Data Center (VDC).
GET Bucket logging -
GET Bucket notification Notification is only defined for reduced redundancy feature in S3. ECS does not support notifications.
GET Bucket tagging -
GET Bucket requestPayment ECS 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. ECS does not support notifications.
PUT Bucket tagging -
PUT Bucket requestPayment ECS uses its own model for payments.
PUT Bucket website -
Object APIs
GET Object torrent -
POST Object -
POST Object restore The POST Object restore operation is related to AWS Glacier, which is not supported in ECS.
SELECT Object Content -
PUT Object legal hold -
GET Object legal hold -
PUT Object retention ECS does not support the new AWS API yet, but has support in its own extensions. See S3 Extensions.
GET Object retention ECS does not support the new AWS API yet, but has support in its own extensions. See S3 Extensions.