Loading...

Using CDMI APIs for ObjectStore

Cloud Data Management Interface (CDMI) is an industry standard that defines the interface for applications to access and manage data objects that are in cloud storage.

Commvault provides APIs that enable applications to use their existing CDMI interface to access the ObjectStore repository. The CDMI APIs are implemented as a REST service that is hosted on the Web Console. Using the CDMI APIs, you can integrate your CDMI friendly applications with the ObjectStore repository, and port the application data to the ObjectStore repository. You can then use of the Commvault software features to manage the application data in the ObjectStore repository. For each CDMI API, a compatible ObjectStore API request is sent to the Web Console web service, and the response is converted into a compatible CDMI API, and then sent to the client. 

CDMI APIs identify the data on the cloud storage using the following objects:

  • CDMI container

    An object that can store multiple children data or container objects and their associated metadata. A CDMI container is analogous to a folder on a file system. The MIME type for this object is application/cdmi-container.

  • CDMI data object

    An object that stores the data in the form of an array of bytes (values) and associated metadata. A CDMI data object  is analogous to a file on a file system. The MIME type for this object is application/cdmi-object.

  • CDMI capability

    An object that identifies the operations that are supported for a given CDMI entity. The MIME type for this object is application/cdmi-capability.

Prerequisites

To implement CDMI APIs, you must complete the following steps:

Using CDMI APIs for Your ObjectStore

By default, the CDMI APIs are enabled on your Web Console. The Commvault software currently supports CDMI interface version 1.1.

Authentication

To implement CDMI APIs, you must use an Authorization header in the following format:

Authorization - Basic base64string

where base64string represents a base64 encoded form of the username:password string.

CDMI APIs and the corresponding ObjectStore APIs

The following table lists the CDMI APIs and the corresponding ObjectStore APIs.

Command

CDMI API

ObjectStore API

Description

PUT Object

PUT <root_URI>/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object
Content-Type: application/cdmi-object

PUT http://<webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object
Content-Type: application/cdmi-object

Create a data object.

PUT Object Multipart

PUT <root_URI>/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object
Content-Type: multipart/mixed

PUT http://<webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object Content-Type: multipart/mixed

Create a data object with file data sent as part of a multipart message.

GET Object

GET <root_URI>/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object

GET http://<webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: application/cdmi-object

Read a data object.

GET Object Multipart

GET <root_URI>/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: multipart/mixed

GET <webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<DataObjectName> HTTP/1.1
Accept: multipart/mixed

Read a data object with the file sent as a multipart message.

DELETE Object

DELETE <root_URI>/<ContainerName>/<DataObjectName> HTTP/1.1

DELETE <webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<DataObjectName> HTTP/1.1

Delete a data object.

PUT Container

PUT <root_URI>/<ContainerName>/<NewContainerName>/ HTTP/1.1
Accept: application/cdmi-container
Content-Type: application/cdmi-container

PUT <webconsolehostname>/webconsole/service/cdmi/ContainerName>/<NewContainerName>/ HTTP/1.1
Accept: application/cdmi-container
Content-Type: application/cdmi-container

Create a container object.

GET Container

GET <root_URI>/<ContainerName>/<TheContainerName>/ HTTP/1.1
Accept: application/cdmi-container

GET <webconsolehostname>/webconsole/service/cdmi/ContainerName>/<TheContainerName>/ HTTP/1.1
Accept: application/cdmi-container

Read a container object.

DELETE Container

DELETE <root_URI>/<ContainerName>/<TheContainerName>/ HTTP/1.1

DELETE <webconsolehostname>/webconsole/service/cdmi/<ContainerName>/<TheContainerName>/ HTTP/1.1

Delete a container object.

Last modified: 1/10/2018 4:47:01 PM