The OpenStack Object Storage API is implemented as a set of ReSTful (Representational State Transfer) web services. All authentication and container/object operations can be performed with standard HTTP calls. See the Wikipedia article for more information about ReST.

The following constraints apply to the ReST API's HTTP requests:

  • Maximum number of HTTP headers per request: 90

  • Maximum length of all HTTP headers: 4096 bytes

  • Maximum length per HTTP request line: 8192 bytes

  • Maximum length of HTTP request: 5 gigabytes

  • Maximum length of container name: 256 bytes

  • Maximum length of object name: 1024 bytes

Container and object names should be properly URL-encoded prior to interacting with the ReST interface (the language APIs handle URL encoding/decoding) and the container and object names must be UTF-8 encoded. The length restrictions should be checked against the URL encoded string.

Each ReST request against the OpenStack Object Storage system requires the inclusion of a specific authorization token HTTP header defined as X-Auth-Token. Clients obtain this token, along with the OpenStack Object Storage URIs, by first using the Authentication service and supplying a valid Username and API Access Key.

The ReST service identified with X-Storage-Url is used for managing the data stored in the system. Example operations are creating containers and uploading objects.

In the following sections, the purpose of each HTTP method depends upon which service the call is made against. For example, a PUT request against X-Storage-Url can be used to create a container or upload an object.

The language-specific APIs mask this system separation from the programmer. They simply create a container and mark it public and it handles calling out to the appropriate back-end services using the appropriate ReST API.

[Note]Note

All requests to authenticate and operate against OpenStack Object Storage are performed using SSL over HTTP (HTTPS) on TCP port 443.