Read object

The GET method retrieves a previously stored object by using the object identifier. The URL consists of the vault name followed by the object identifier. An object is not available until it is written. Partially completed objects cannot be accessed with the read operation.

Sample request


GET /vault-name/d6133cd067ad4ea38cdcd1faa1e4e9040000 HTTP/1.1
An object is retrieved from a vault that is named vault-name by using the access server access.example.com.

Sample response


HTTP/1.1 200 OK
Server: Cleversafe/3.2.0.0
Accept-Ranges: bytes
Date: Wed, 25 Sep 2013 14:38:12 GMT
X-SOH-Version: 2.5
X-Clv-Request-Id: dcaf63bf-2379-4934-b986-349ade203257
ETag: d6133cd067ad4ea38cdcd1faa1e4e9040000
Content-Length: 43
The quick brown fox jumps over the lazy dog
The response contains the source data of the retrieved object. The ETag is equal to the object ID returned in the write request.

Status codes

Table 1. Read object - status codes
Code Status Description
200 OK Object was read successfully from the vault.
206 Partial Content Object was read successfully from the vault and a portion was returned.
400 Bad Request URL contained an invalid object identifier or was otherwise malformed.
401 Unauthorized User authentication is needed. The request either did not provide correct credentials or the user does not have permission to read from the indicated vault.
403 Forbidden Client has insufficient privileges to perform the operation.
404 Not Found No such object exists in the vault.
416 Requested Range Not Satisfiable Requested range is greater than available from the object.
500 Internal Server Error Internal error was encountered on the access server. It is an unrecoverable error. Details can be provided in message body.

Range requests

HTTP Range function is defined in sections 14.16, 14.35, and 19.2 of Hypertext Transfer Protocol -- HTTP/1.1 [RFC 2616]. A certain portion of an object can be requested by using the Range header. When an access server receives a request with a Range header, it replies with a proper 206 Partial Content or 416 Requested Range Not Satisfiable statuses, depending on whether the requested range is satisfiable. If an access server receives a syntactically invalid range request, the Range header is ignored and an ordinary full-entity response is returned. It conforms to Hypertext Transfer Protocol -- HTTP/1.1 [RFC 2616 section 14.35.1]. Multi-range requests, as described in Hypertext Transfer Protocol -- HTTP/1.1 [RFC 2616 section 19.2], are not supported. When a multi-range request is received, the server treats the request as a syntactically invalid range request and returns an ordinary full-entity response.