ECS 2.0 – ECS EMC Atmos Object Service API support

Table of Contents

EMC Atmos API Supported Features

ECS supports a subset of the EMC Atmos API. This article lists the supported operations and the ECS extensions.

The EMC Atmos Object Service is made available on the following ports.

More information on the supported operations can be found in the Atmos Programmer’s Guide which is available from EMC Supportzone.

Wire format compatibility is provided for all supported operations. Therefore, the operations described in the Atmos Programmer's Guide apply to the API operations exposed by ECS.

The Atmos Programmer's Guide also provides information on authenticating with the Atmos API and provides comprehensive examples for many of the supported features.

Back to Top

Supported EMC Atmos REST API Calls

ECS supports a subset of the EMC Atmos API.

The following Atmos REST API calls are supported. Calls for the object and namespace interfaces are shown.

Note Image
  • The x-emc-wschecksum header is not supported.
  • HTML form upload is not supported.
  • GET /rest/objects does not support different response types with x-emc-accept. For example, text/plain is not supported.
  • Expiration and retention of objects is not supported.

Back to Top

Unsupported EMC Atmos REST API Calls

The following Atmos REST API calls are not supported.

Note Image

Checksum protection using the x-emc-wschecksum custom header is not supported.

Back to Top

Subtenant Support in EMC Atmos REST API Calls

ECS includes two native REST API calls that are specifically to add ECS subtenant support to Atmos applications.

These calls are as follows:

Back to Top

API Extensions

A number of extensions to the object APIs are supported.

The extensions and the APIs that support them are listed in the following table.

Back to Top

Appending data to an object

An example of using the ECS API extensions to append data to an object is provided below.

There may be cases where you need to append to an object, but determining the exact byte offset is not efficient or useful. For this scenario, ECS provides the ability to atomically append data to the object without specifying an offset (the correct offset is returned to you in the response).

A Range header with the special value bytes=-1- can be used to append data to an object. In this way, the object can be extended without knowing the existing object size.

The format is: Range: bytes=-1-

A sample request showing appending to an existing object using a Range value of bytes=-1-. Here the value and cat is sent in the request.

PUT /rest/namespace/myObject HTTP/1.1
Content-Length: 8
Range: bytes=-1-
ACCEPT: application/json,application/xml,text/html,application/octet-stream
Date: Mon, 17 Jun 2013 20:46:01 -0000
x-emc-date: Mon, 17 Jun 2013 20:46:01 -0000
x-emc-namespace: emc
x-emc-uid: fa4e31a68d3e4929bec2f964d4cac3de/wuser1@sanity.local
x-emc-signature: ZpW9KjRb5+YFdSzZjwufZUqkExc=
Content-Type: application/octet-stream
Accept-Encoding: gzip, deflate, compress

and cat 

HTTP/1.1 200 OK
x-emc-mtime: 1431626712933
Date: Mon, 17 Jun 2013 20:46:01 GMT
x-emc-policy: default
x-emc-utf8: true
x-emc-request-id: 0af9ed8d:14cc314a9bc:112f6:9
x-emc-delta: 8
x-emc-append-offset: 24
Content-Length: 0
Server: Jetty(7.6.4.v20120524)

The offset position at which the data was appended is returned in the x-emc-append-offset header.

When retrieving the object again, you can see the full value The quick green fox jumps over the lazy dog and cat. You have appended data to this object.

Back to Top