diff --git a/api-ref/src/docbkx/ch_objectstorage-v1.xml b/api-ref/src/docbkx/ch_objectstorage-v1.xml
index 606dee0c9..14247f832 100644
--- a/api-ref/src/docbkx/ch_objectstorage-v1.xml
+++ b/api-ref/src/docbkx/ch_objectstorage-v1.xml
@@ -1,17 +1,4 @@
-
-
-
-
-
-
-
-GET'>
-PUT'>
-POST'>
-DELETE'>
-]>
Object Storage API v1
- Manages the accounts, containers, and objects in the object
- storage system.
-
+ Manages the accounts, containers, and objects in the Object
+ Storage system.
+ To run the cURL command examples for these requests, set
+ these environment variables:
+
+
+ publicURL
. The public URL that is the
+ HTTP endpoint from where you can access Object
+ Storage. It includes the Object Storage API version
+ number and your account name. For example,
+ https://23.253.72.207/v1/my_account
.
+
+
+ token
. The authentication token for
+ Object Storage.
+
+
+ To obtain these values, run the swift stat
+ -v command.
+ As shown in this example, the public URL appears in the
+ StorageURL
field, and the token appears in
+ the Auth Token
field:
+ StorageURL: https://23.253.72.207/v1/my_account
+Auth Token: {token}
+Account: my_account
+Containers: 2
+Objects: 3
+Bytes: 47
+Meta Book: MobyDick
+X-Timestamp: 1389453423.35964
+X-Trans-Id: txee55498935404a2caad89-0052dd3b77
+Content-Type: text/plain; charset=utf-8
+Accept-Ranges: bytes
+ For a complete description of HTTP 1.1 header definitions,
+ see Header Field Definitions.
+
+ Accounts
+ Lists containers for a specified account. Creates,
+ updates, and deletes account metadata. Shows account
+ metadata.
+
+
+
+
+
+
+
+
+
+ Containers
+ Lists objects in a specified container. Creates, shows
+ details for, and deletes containers. Creates, updates,
+ shows, and deletes container metadata.
+
+
+
+
+
+
+
+
+
+
+
+ Objects
+ Creates, replaces, shows details for, and deletes
+ objects. Copies objects with another object with a new or
+ different name. Updates object metadata.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-ref/src/wadls/object-api/src/common.ent b/api-ref/src/wadls/object-api/src/common.ent
new file mode 100644
index 000000000..af4b2e29e
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/common.ent
@@ -0,0 +1,997 @@
+
+
+
+
+
+'>
+
+
+
+'>
+
+
+
+'>
+
+
+
+'>
+
+
+
+'>
+
+
+
+'>
+
+
+
+ '>
+
+
+
+ '>
+
+
+
+ '>
+
+
+
+ '>
+
+
+
+ '>
+
+
+
+ Instead of using the format
query
+ parameter, set this header to
+ application/json
,
+ application/xml
, or
+ text/xml
.
+
+'>
+
+ The account metadata. The &name;
is
+ the name of metadata item that you want to add, update, or
+ delete. To delete this item, send an empty value in this
+ header.
+ You must specify a X-Account-Meta-&name;
+ header for each metadata item (for each
+ &name;
) that you want to add, update, or
+ delete.
+'>
+
+
+ The secret key value for temporary URLs.
+
+'>
+
+
+ A second secret key value for temporary URLs. The second
+ key enables you to rotate keys by having an old and new
+ key active at the same time.
+
+'>
+
+
+ Authentication token. If you omit this header, your
+ request fails unless the account owner has granted you
+ access through an access control list (ACL).
+
+'>
+
+
+ Authentication token.
+
+'>
+
+ The container metadata, where &name;
+ is the name of metadata item.
+ You must specify a X-Container-Meta-&name;
+ header for each metadata item (for each
+ &name;
) that you want to add or
+ update.
+'>
+
+
+ Sets an ACL that grants read access.
+
+'>
+
+
+ Sets the secret key for container synchronization.
+
+'>
+
+
+ Sets the destination for container synchronization.
+
+'>
+
+
+ Sets an ACL that grants write access.
+
+'>
+
+ If set, specifies the override behavior for the browser.
+ For example, this header might specify that the browser use a
+ download program to save this file rather than show the file, which is the default.
+'>
+
+ If set, the value of the
+ Content-Encoding
metadata.
+'>
+
+ The content length, which is
+zero in this situation.
+'>
+
+ Set to the length of the object content. Do not set
+ if chunked transfer encoding is being
+ used.
+'>
+
+ Changes the MIME type for the
+ object.
+'>
+
+
+ If set, this is the name of an object used to create the
+ new object by copying the X-Copy-From
object.
+ The value is in form {container}/{object}
.
+ You must UTF-8-encode and then URL-encode the names of the
+ container and object before you include them in the
+ header.
+ Using &PUT; with X-Copy-From
has the same
+ effect as using the © operation to copy an
+ object.
+'>
+
+ Specifies the number of seconds after which the
+ object is removed. Internally, the Object Storage system
+ stores this value in the X-Delete-At
metadata
+ item.
+'>
+
+ The certain date, in the
+format of a UNIX Epoch timestamp, when the
+object is removed.
+'>
+
+ The container and object name of the destination
+ object in the form of /container/object
. You
+ must UTF-8-encode and then URL-encode the names of the
+ destination container and object before you include them
+ in this header.
+'>
+
+ The MD5 checksum value of the request body. For
+ example, the MD5 checksum value of the object content. You
+ are strongly recommended to compute the MD5 checksum value
+ of object content and include it in the request. This
+ enables the Object Storage API to check the integrity of
+ the upload. The value is not quoted.
+'>
+
+
+ See http://www.ietf.org/rfc/rfc2616.txt.
+'>
+
+
+ See http://www.ietf.org/rfc/rfc2616.txt.
+'>
+
+
+ See http://www.ietf.org/rfc/rfc2616.txt.
+'>
+
+
+ See http://www.ietf.org/rfc/rfc2616.txt.
+'>
+
+ If set to True, Object Storage
+ queries all replicas to return the most recent one. If you
+ omit this header, Object Storage responds faster after it
+ finds one valid replica. Because setting this header to
+ True is more expensive for the back
+ end, use it only when it is absolutely
+ needed.
+'>
+
+
+ Set to specify that this is a dynamic large object manifest object.
+The value is the container and object name prefix of the segment objects
+in the form container/prefix
. You must UTF-8-encode and then
+URL-encode the names of the container and prefix before you
+include them in this header.
+
+'>
+
+ The container metadata, where &name;
+ is the name of the metadata item.
+ You must specify a X-Object-Meta-&name;
+ header for each metadata item (for each
+ &name;
) that you want to add or
+ update.
+'>
+
+ The ranges of content to get.
+ You can use the Range
header to get
+ portions of data by using one or more range
+ specifications. To specify many ranges, separate the range
+ specifications with a comma.
+ The types of range specifications are:
+
+
+ Byte range
+ specification. Use
+ FIRST_BYTE_OFFSET to specify the start of the data
+ range, and LAST_BYTE_OFFSET to specify the end.
+ You can omit the LAST_BYTE_OFFSET and if you do,
+ the value defaults to the offset of the last byte
+ of data.
+
+
+ Suffix byte range
+ specification. Use LENGTH bytes to
+ specify the length of the data range.
+
+
+ The following forms of the header specify the following
+ ranges of data:
+
+ Range: bytes=-5
. The last
+ five bytes.
+
+ Range: bytes=10-15
. The five bytes
+ of data after a 10-byte offset.
+
+ Range: bytes=10-15,-5
. A multi-part
+ response that contains the last five bytes and the
+ five bytes of data after a 10-byte offset. The
+ Content-Type
of the response is
+ then
+ multipart/byteranges
.
+
+ Range: bytes=4-6
. Bytes 4 to 6
+ inclusive.
+
+ Range: bytes=2-2
. Byte 2, the third
+ byte of the data.
+
+ Range: bytes=6-
. Byte 6 and
+ after.
+
+ Range: bytes=1-3,2-5
. A multi-part
+ response that contains bytes 1 to 3 inclusive, and
+ bytes 2 to 5 inclusive. The
+ Content-Type
of the response is
+ then
+ multipart/byteranges
.
+
+'>
+
+
+ The custom metadata to remove. The &name;
+ value in the header is the name of the metadata
+ item.
+ If the tool you use to communicate with Object Storage,
+ such as older versions of cURL, does not support empty
+ headers, send the
+ X-Remove-Account-Meta-&name;:
+ arbitrary value
header, where
+ &name;
is the name of the metadata item
+ that you want to remove. For example,
+ X-Remove-Account-Meta-Book: x
. The
+ arbitrary value is ignored.
+ You must specify a
+ X-Remove-Account-Meta-&name;
header for
+ each metadata item (for each &name;
) that you
+ want to remove.
+'>
+
+ Set the X-Remove-Container-Meta-&name;
header
+ to any value to
+ remove the metadata item. The &name;
+ value in the header is the name of the metadata
+ item to remove.
+'>
+
+
+ Removes the metadata item named
+ {name}
. For example,
+ X-Remove-Container-Read
removes the
+ X-Container-Read
metadata item.
+
+'>
+
+
+ Set to any value to disable versioning.
+
+'>
+
+
+ Set to chunked
to enable chunked transfer
+ encoding. If used, do not set the
+ Content-Length
header to a non-zero
+ value.
+
+'>
+
+
+ Enables versioning on this container. The value is the
+ name of another container. You must UTF-8-encode and then
+ URL-encode the name before you include it in the header.
+ To disable versioning, set the header to an empty
+ string.
+
+'>
+
+
+ Delimiter value, which returns the object names
+ that are nested in the container.
+'>
+
+ For a string value x,
+ returns container names that are less in value than the specified
+ marker.
+'>
+
+ Used with temporary URLs to specify the expiry time of the signature. For
+ more information about temporary URLs, see OpenStack Object Storage API v1
+ Reference.
+'>
+
+ The response format. Valid values are
+ json
, xml
, or
+ plain
. The default is
+ plain
.
+ If you append the format=xml
or
+ format=json
query parameter to the
+ storage account URL, the response shows extended container
+ information serialized in the specified format.
+ If you append the format=plain
query
+ parameter, the response lists the container names
+ separated by newlines.
+'>
+
+ For an integer value n,
+ limits the number of results to n.
+'>
+
+ For a string value x,
+ returns container names that are greater in value than the
+ specified marker.
+'>
+
+ If ?multipart-manifest=put
, the object is a static
+ large object manifest and the body contains the
+ manifest.
+'>
+
+ If you include the multipart-manifest=get
query
+ parameter and the object is a large object, the
+ object contents are not returned. Instead, the manifest is
+ returned in the X-Object-Manifest
response
+ header for dynamic large objects or in the response body
+ for static large objects.
+'>
+
+ If you include the
+ multipart-manifest=delete
query parameter
+ and the object is a static large object, the segment
+ objects and the manifest object are deleted. If you omit
+ the multipart-manifest=delete
query parameter
+ and this is a static large object, the manifest object is
+ deleted and the segment objects are not deleted.
+ For a bulk delete, the response body looks the same as
+ it does for a normal bulk delete. In contrast, a plain
+ object &DELETE; response has an empty
+ body.
+'>
+
+ For a string value, returns the object names that are nested
+ in the pseudo path. Equivalent to setting delimiter to /
+ and prefix
to the path with a /
at the
+ end.
+'>
+
+ Prefix value. Object
+ names in the response begin with this value.
+'>
+
+ Used with temporary URLs to sign the request. For
+ more information about temporary URLs, see OpenStack Object Storage API v1
+ Reference.
+'>
+
+
+
+ The type of ranges that the object accepts.
+
+'>
+
+
+ The total number of bytes that are stored in Object
+ Storage for the account.
+
+'>
+
+
+ The number of containers.
+
+'>
+
+
+ The custom account metadata item, where
+ &name;
is the name of the metadata
+ item.
+ One X-Account-Meta-&name;
response header
+ appears for each metadata item (for each
+ &name;
).
+
+'>
+
+
+ The secret key value for temporary URLs. If not set,
+ this header is not returned by this operation.
+
+'>
+
+
+ A second secret key value for temporary URLs. If not set,
+ this header is not returned by this operation.
+
+'>
+
+
+ The number of objects in the account.
+
+'>
+
+ The count of bytes used in
+total.
+'>
+
+ The number of
+ objects.
+'>
+
+
+ The ACL that grants read access. If not set,
+ this header is not returned by this operation.
+
+'>
+
+
+ The destination for container synchronization. If not set,
+ this header is not returned by this operation.
+
+'>
+
+
+ The secret key for container synchronization. If not set,
+ this header is not returned by this operation.
+
+'>
+
+
+ The ACL that grants write access. If not set,
+ this header is not returned by this operation.
+
+'>
+
+ The custom container metadata item, where
+ &name;
is the name of the metadata
+ item.
+ One X-Container-Meta-&name;
response header
+ appears for each metadata item (for each
+ &name;
).
+'>
+
+ If set, specifies the override behavior for the browser.
+ For example, this header might specify that the browser use a
+ download program to save this file rather than show the file, which is the default.
+ If not set, this header is not returned by this
+ operation.
+'>
+
+ If set, the value of the
+ Content-Encoding
metadata.
+ If not set,
+ this header is not returned by this operation.
+'>
+
+ The length of the object content in the response
+ body, in bytes.
+'>
+
+ &HEAD; operations do not return content. However,
+ in this operation the value in the
+ Content-Length
header is not the size of
+ the response body. Instead it contains the size of the
+ object, in bytes.
+'>
+
+ The length of the response body that contains the
+ list of names. If the operation fails, this value is the
+ length of the error text in the response
+ body.
+'>
+
+ If the operation succeeds, this value is zero (0).
+ If the operation fails, this value is the length of the
+ error text in the response body.
+'>
+
+ The MIME type of the object.
+'>
+
+ The MIME type of the list of names. If the
+ operation fails, this value is the MIME type of the error
+ text in the response body.
+'>
+
+ If the operation fails, this value is the MIME type
+ of the error text in the response body.
+'>
+
+
+ For a copied object, shows the container and object name from which the new object was copied.
+ The value is in form {container}/{object}
.
+'>
+
+
+ For a copied object, shows the last modified date and time for the
+ container and object name from which the new object was copied.
+'>
+
+ The transaction date and time.
+'>
+
+ The certain date, in the
+format of a UNIX Epoch timestamp, after which
+the object is removed.
+'>
+
+ If set, the time when the object will be deleted by
+ the system in the format of a UNIX Epoch
+ timestamp.
+ If not set,
+ this header is not returned by this operation.
+'>
+
+ For objects smaller than 5 GB, this value is the
+ MD5 checksum of the object content. The value is not
+ quoted.
+ For manifest objects, this value is the MD5 checksum of
+ the concatenated string of MD5 checksums and ETags for
+ each of the segments in the manifest, and not the MD5
+ checksum of the content that was downloaded. Also the
+ value is enclosed in double-quote characters.
+ You are strongly recommended to compute the MD5 checksum
+ of the response body as it is received and compare this
+ value with the one in the ETag header. If they differ, the
+ content was corrupted, so retry the
+ operation.
+'>
+
+ The
+ MD5 checksum of the copied object content. The value is not
+ quoted.
+
+'>
+
+ For objects smaller than 5 GB, this value is the
+ MD5 checksum of the uploaded object content. The value is
+ not quoted.
+ If you supplied an ETag
request header and
+ the operation was successful, the values are the
+ same.
+ If you did not supply an ETag
request
+ header, check the ETag
response header value
+ against the object content you have just uploaded.
+ For static large objects, this value is the MD5 checksum
+ of the concatenated string of MD5 checksums and ETags for
+ each of the segments in the manifest, and not the MD5
+ checksum of the content that was uploaded. Also the value
+ is enclosed in double-quotes. For dynamic large objects,
+ the value is the MD5 checksum of the empty
+ string.
+'>
+
+ The date and time that the object was created or
+ the last time that the metadata was
+ changed.
+'>
+
+ If set, to this is a dynamic large object manifest object.
+The value is the container and object name prefix of the segment objects
+in the form container/prefix
.
+'>
+
+ The custom object metadata item, where
+ &name;
is the name of the metadata
+ item.
+ One X-Object-Meta-&name;
response header
+ appears for each metadata item (for each
+ &name;
).
+'>
+
+ Set to True
if this object is a static
+ large object manifest object.
+'>
+
+ A unique transaction identifier for this request.
+ Your service provider might need this value if you report
+ a problem.
+'>
+
+
+ Enables versioning on this container. The value is the
+ name of another container. You must UTF-8-encode and then
+ URL-encode the name before you include it in the header.
+ To disable versioning, set the header to an empty
+ string.
+
+'>
+
+
+
+ The total number of bytes that are stored in Object
+ Storage for the account.
+
+'>
+
+
+ The content type of the object.
+
+'>
+
+
+ The number of objects in the container.
+
+'>
+
+
+ The MD5 checksum value of the object content.
+
+'>
+
+
+ The date and time when the object was last modified.
+
+'>
+
+
+ The name of the container.
+
+'>
+
+GET'>
+HEAD'>
+COPY'>
+PUT'>
+POST'>
+DELETE'>
diff --git a/api-ref/src/wadls/object-api/src/os-object-api-1.0.wadl b/api-ref/src/wadls/object-api/src/os-object-api-1.0.wadl
index 07dbd5648..3e8c0b61a 100644
--- a/api-ref/src/wadls/object-api/src/os-object-api-1.0.wadl
+++ b/api-ref/src/wadls/object-api/src/os-object-api-1.0.wadl
@@ -1,72 +1,59 @@
-
-
-
-
-
-
-
-COPY'>
-GET'>
-HEAD'>
-PUT'>
-POST'>
-DELETE'>
-]>
-
+
+%common;]>
+
+ type="#AccountDetails">
- The unique identifier for the
+ The unique name for the account. An
+ account is also known as the project or
tenant.
-
-
-
+
+
+ type="#ContainerDetails">
- The unique identifier of the
+ The unique name for the
container.
-
-
-
-
-
+
+
+
+
+ type="#ObjectDetails">
- The unique identifier of the
+ The unique name for the
object.
-
-
-
-
-
+
+
+
+
+
@@ -75,839 +62,1004 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
- Lists storage containers, sorted by
- name.
+ title="Show account details and list containers">
+ Shows details for a specified
+ account and lists containers, sorted by name, in the
+ account.
The sort order for the name is based on a binary comparison, a single built-in
collating sequence that compares string data by using
- the SQLite memcmp() function, regardless of text
- encoding. The following list describes the optional
- query parameters that are supported with this
- request.
- At this time, a prefix query parameter is not
- supported at the account level.
- A list of containers is returned in the response
- body, one container per line.
- The HTTP response status code is a value from 200 to
- 299, inclusive.
- Serialized list
- output
- If you append the format=xml
or
- format=json
argument to the storage
- account URL, the service serves extended container
- information serialized in the specified format. The
- sample responses are formatted for readability. The
- following example HTTP request asks for a JSON
- response, so the response returns an HTTP header and a
- JSON response.
- Control a large number of
- containers
- The system returns a maximum of 10,000 container
- names for each request. To get subsequent container
- names, you must make another request with the marker
- parameter. The marker indicates where the last list
- left off; the system returns container names greater
- than this marker, up to 10,000 names again. Note that
- the marker value should be URL-encoded before you send
- the HTTP request. If 10,000 is more than desired, use
- the limit parameter. If the number of container names
- returned equals the specified limit, or 10,000 if no
- limit is specified, you can assume there are more
- container names.
- For example, for a list of five container names, if
- you specify a limit of two, two items are returned.
- You can assume there are more container names to list,
- so make another request with a marker of the last item
- returned.
- Again, two items are returned, and there might be
- more. You now receive a one-item response, which is
- fewer than than the limit number of container names.
- This indicates that this is the end of the list. By
- using end_marker, you can limit the result set to
- container names less than the specified value.
-
-
-
- For an integer value
- n, limits the
- number of results to
- n
- values.
-
-
- Given a string value
- x, returns
- container names greater in value than the
- specified marker.
-
-
- Given a string value
- x, returns
- container names less in value than the
- specified marker.
-
-
- Value of the serialized
- response format. Either json or
- xml.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Gets the number of containers and
- the total bytes that are stored in Object Storage for
- the tenant.
- Returns the number of containers in the
- X-Account-Container-Count
header and
- the total number of bytes that are stored in Object
- Storage for the tenant in the
- X-Account-Bytes-Used
header. Because
- the storage system can store large amounts of data,
- take care when you represent the total bytes response
- as an integer; when possible, convert it to a 64-bit
- unsigned integer if your platform supports that
- primitive type.
- If the request succeeds, the HTTP return code is
- from 200 to 299, inclusive. An invalid account or
- access key returns a 401 (Unauthorized) error
- code.
-
-
-
- Set to True
- in &HEAD; and &GET; requests to have Object
- Storage query all replicas to return the most
- recent one. If you omit this header, Object
- Storage responds faster after it finds one
- valid replica. Because setting this header to
- True is more expensive
- for the back-end, use it only when it is
- absolutely needed.
-
-
-
-
- The number of containers.
-
-
-
- The total number of bytes that
- are stored in Object Storage for the
- tenant.
-
-
-
-
-
-
-
-
-
-
-
- Creates or updates account
- metadata,
- You can associate custom metadata headers with the
- account level URI. To create or update an account
- metadata header, submit a &POST; request. These
- headers must have the format,
- X-Account-Meta-name
.
- Subsequent requests for the same key/value pair
- overwrite the previous value.
- If the request succeeds, the HTTP return code is
- from 200 to 299, inclusive.
-
-
-
- The account metadata. The
- name represents
- the name of metadata.
-
-
-
-
-
-
-
-
-
-
-
- Deletes account metadata.
- To delete a metadata header, send an empty value for
- that particular header, such as for the
- X-Account-Meta-Book
header.
- If the tool you use to communicate with Object
- Storage, such as older versions of cURL, does not
- support empty headers, send the
- X-Remove-Account-Meta-name:
- arbitrary value header. For
- example, X-Remove-Account-Meta-Book: x
.
- The arbitrary value is ignored.
+ the SQLite memcmp() function,
+ regardless of text encoding.
This operation does not accept a request
body.
- If the request succeeds, the HTTP return code is
- from 200 to 299, inclusive.
+ Example requests and responses:
+ Show account details and list
+ containers, and ask for a JSON
+ response:curl -i
+ $publicURL?format=json -X GET -H
+ "X-Auth-Token: $token"
+ See the example response
+ below.
+
+ List containers and ask for an XML response:
+ curl -i $publicURL?format=xml -X GET
+ -H "X-Auth-Token:
+ $token"
See the example
+ response
+ below.
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ The response body returns a list of containers. The
+ default response (text/plain
) returns one
+ container per line.
+ If you use query parameters to page through a long
+ list of containers, you have reached the end of the
+ list if the number of items in the returned list is
+ less than the request limit
value. The
+ list contains more items if the number of items in the
+ returned list equals the limit
+ value.
+ If the request succeeds, the operation returns one
+ of these status codes:
+
+ 200.
+ Success. The response body lists the
+ containers.
+ 204.
+ Success. The response body shows no
+ containers. Either the account has no
+ containers or you are paging through a long
+ list of names by using the
+ marker
, limit
, or
+ end_marker
query parameters,
+ and you have reached the end of the
+ list.
+
-
-
- If the tool you use to
- communicate with Object Storage, such as older
- versions of cURL, does not support empty
- headers, send the
- X-Remove-Account-Meta-name:
- arbitrary value
header. For
- example, X-Remove-Account-Meta-Book:
- x
. The arbitrary value is
- ignored.
-
-
+ &limit-requestParameter; &marker-requestParameter;
+ &end-marker-requestParameter; &format-requestParameter;
+ &prefix-requestParameter; &delimiter-requestParameter;
+ &auth-token-requestHeader-required; &newest-requestHeader;
+ &accept-requestHeader;
+
+ &content-length-responseHeader-NAMES;
+ &content-type-responseHeader-NAMES;
+ &account-object-count-responseHeader;
+ &account-bytes-used-responseHeader;
+ &account-container-count-responseHeader;
+ &account-meta-name-responseHeader;
+ &account-meta-temp-url-key-responseHeader;
+ &account-meta-temp-url-key-2-responseHeader;
+ &trans-id-responseHeader; &date-responseHeader;
+ &name-responseField; &count-responseField;
+ &bytes-responseField;
+ title="List containers response: HTTP and JSON">
-
-
-
-
-
- Creates a container.
-
-
-
+
The custom container metadata.
- The asterisk (*) represents the name of
- metadata.
-
-
-
+ xml:lang="EN"
+ title="List containers response: HTTP and XML">
-
-
-
-
-
-
-
- Deletes an empty container.
-
-
-
-
-
- Gets container metadata, including
- the number of objects and the total bytes of all
- objects stored in the container.
-
-
-
- Set to True
- in &HEAD; and &GET; requests to have Object
- Storage query all replicas to return the most
- recent one. If you omit this header, Object
- Storage responds faster after it finds one
- valid replica. Because setting this header to
- True is more expensive
- for the back-end, use it only when it is
- absolutely needed.
-
-
-
-
- The number of
- objects.
-
-
- The count of bytes used in
- total.
-
-
-
+ href="samples/account_containers_list_http_response_xml.txt"/>
+ href="samples/account_containers_list_response.xml"
+ />
-
+
+
- Creates or updates the arbitrary
- container metadata by associating custom metadata
- headers with the container level URI. These headers
- must have the format,
- X-Container-Meta-name
.
-
-
-
- The container metadata. The
- name represents
- the name of metadata.
-
-
-
-
-
-
-
-
-
-
-
- Deletes container metadata
- To delete container metadata, send an empty value
- for that particular header, such as for the
- X-Container-Meta-Book
header. If the
- tool you use to communicate with Object Storage, such
- as older versions of cURL, does not support empty
- headers, send the
- X-Remove-Container-Meta-name:
- arbitrary
- value
header. For example,
- X-Remove-Container-Meta-Book: x
. The
- arbitrary value is ignored.
-
-
-
- The account metadata to
- remove. The name
- represents the name of metadata that you want
- to remove.
-
-
-
-
-
-
-
-
-
-
-
- Deletes account metadata
+ title="Create, update, or delete account metadata">
+ Creates, updates, or deletes
+ account metadata.
+ To create, update, or delete metadata, use the
+ X-Account-Meta-{name}
header, where
+ {name}
is the name of the metadata
+ item.
+ Subsequent requests for the same key and value pair
+ overwrite the previous value.
To delete a metadata header, send an empty value for
that particular header, such as for the
X-Account-Meta-Book
header. If the
tool you use to communicate with Object Storage, such
- as older versions of cURL, does not support empty
+ as an older version of cURL, does not support empty
headers, send the
- X-Remove-Account-Meta-name:
- arbitrary
- value
header. For example,
- X-Remove-Account-Meta-Book: x
. The
- arbitrary value is ignored.
+ X-Remove-Account-Meta-{name}
:
+ arbitrary value header.
+ For example, X-Remove-Account-Meta-Book:
+ x
. The operation ignores the arbitrary
+ value.
+ If the container already has other custom metadata
+ items, a request to create, update, or delete metadata
+ does not affect those items.
+ This operation does not accept a request
+ body.
+ Example requests and responses:
+ Create account
+ metadata:curl -i
+ $publicURL -X POST -H "X-Auth-Token:
+ $token" -H "X-Account-Meta-Book: MobyDick"
+ -H "X-Account-Meta-Subject:
+ Literature"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx8c2dd6aee35442a4a5646-0052d954fb
+Date: Fri, 17 Jan 2014 16:06:19 GMT
+ Update account
+ metadata:curl -i
+ $publicURL -X POST -H "X-Auth-Token:
+ $token" -H "X-Account-Meta-Subject:
+ AmericanLiterature"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx1439b96137364ab581156-0052d95532
+Date: Fri, 17 Jan 2014 16:07:14 GMT
+ Delete account
+ metadata:curl -i
+ $publicURL -X POST -H "X-Auth-Token:
+ $token" -H "X-Remove-Account-Meta-Subject:
+ x"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx411cf57701424da99948a-0052d9556f
+Date: Fri, 17 Jan 2014 16:08:15 GMT
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If the request succeeds, the operation returns the
+ 204 status code.
+ To confirm your changes, issue a show account
+ metadata request.
-
-
- The account metadata to
- remove. The name
- represents the name of metadata that you want
- to remove.
-
-
-
-
-
-
-
-
+ &auth-token-requestHeader-required;
+ &account-meta-temp-url-key-requestHeader;
+ &account-meta-temp-url-key-2-requestHeader;
+ &account-meta-name-requestHeader;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader;
-
+
+
- Lists the objects stored in the
+ title="Show account metadata">
+ Shows metadata for a specified
+ account.
+ Metadata for the account includes:
+
+ Number of containers
+ Number of objects
+ Total number of bytes that are stored
+ in Object Storage for the
+ account
+
+ Because the storage system can store large amounts
+ of data, take care when you represent the total bytes
+ response as an integer; when possible, convert it to a
+ 64-bit unsigned integer if your platform supports that
+ primitive type.
+ This operation does not accept a request
+ body.
+ Do not include metadata headers in this
+ request.
+ Show account metadata
+ request:curl -i $publicURL -X
+ HEAD -H "X-Auth-Token: $token"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+X-Account-Object-Count: 1
+X-Account-Meta-Book: MobyDick
+X-Timestamp: 1389453423.35964
+X-Account-Bytes-Used: 14
+X-Account-Container-Count: 2
+Content-Type: text/plain; charset=utf-8
+Accept-Ranges: bytes
+X-Trans-Id: txafb3504870144b8ca40f7-0052d955d4
+Date: Fri, 17 Jan 2014 16:09:56 GMT
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If the account or authentication token is not valid,
+ the operation returns the 401
+ Unauthorized error code.
+
+ &auth-token-requestHeader-required;
+ &newest-requestHeader;
+ &account-object-count-responseHeader;
+ &account-container-count-responseHeader;
+ &account-bytes-used-responseHeader;
+ &account-meta-name-responseHeader;
+ &account-meta-temp-url-key-responseHeader;
+ &account-meta-temp-url-key-2-responseHeader;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader; &fault401;
+
+
+
+
+
+
+
+ Shows details for a specified
+ container and lists objects, sorted by name, in the
container.
+ Specify query parameters in the request to filter
+ the list and return a subset of object names. Omit
+ query parameters to return the complete list of object
+ names that are stored in the container, up to 10,000
+ names. The 10,000 maximum value is configurable. To
+ view the value for the cluster, issue a &GET;
+ /info
request.
+ Example requests and responses:
+
+ Show container details for and list objects
+ in the marktwain
container, and
+ ask for a JSON
+ response:curl -i
+ $publicURL/marktwain?format=json -X GET -H
+ "X-Auth-Token: $token"
+
+ Show container details for and list objects
+ in the marktwain
container, and
+ ask for an XML
+ response:curl -i
+ $publicURL/marktwain?format=xml -X GET -H
+ "X-Auth-Token: $token"
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If you use query parameters to page through a long
+ list of objects, you have reached the end of the list
+ if the number of items in the returned list is less
+ than the request limit
value. The list
+ contains more items if the number of items in the
+ returned list equals the limit
+ value.
+ If the request succeeds, the operation returns one
+ of these status codes:
+ 200.
+ Success. The response body lists the
+ objects.
+ 204.
+ Success. The response body shows no objects.
+ Either the container has no objects or you are
+ paging through a long list of names by using
+ the marker
, limit
,
+ or end_marker
query parameters,
+ and you have reached the end of the
+ list.
+ If the container does not exist, the
+ 404
+ Not Found error code is
+ returned.
-
-
+ &limit-requestParameter; &marker-requestParameter;
+ &end-marker-requestParameter; &prefix-requestParameter;
+ &format-requestParameter; &delimiter-requestParameter;
+ &path-requestParameter;
+ &auth-token-requestHeader-required; &accept-requestHeader;
+
+ &content-length-responseHeader-NAMES;
+ &container-object-count-responseHeader;
+ &accept-ranges-responseHeader;
+ &container-meta-name-responseHeader;
+ &container-bytes-used-responseHeader;
+ &content-type-responseHeader-NAMES;
+ &trans-id-responseHeader; &date-responseHeader;
+ &name-responseField; &hash-responseField;
+ &bytes-responseField; &content-type-responseField;
+ &last-modified-responseField;
The number limit of
- results.
-
-
- Value of the marker, that the
- object names greater in value than are
- returned.
-
-
- Value of the marker, that the
- object names less in value than are
- returned.
-
-
- Value of the prefix, which the
- returned object names begin
- with.
-
-
- Value of the serialized
- response format, either json or
- xml.
-
-
- Value of the delimiter, that
- all the object names nested in the container
- are returned.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Gets data for a specified
- object.
- You can perform conditional &GET; requests by using
- the following HTTP headers in the request:
-
-
- If-Match
-
-
- If-None-Match
-
-
- If-Modified-Since
-
-
- If-Unmodified-Since
-
-
- These headers are documented in http://www.ietf.org/rfc/rfc2616.txt.
- You can use the HTTP Range
header to
- fetch portions of data by using one or more range
- specifications. To specify many ranges, separate the
- range specifications with a comma.
- The types of range specifications are:
-
-
- Byte range
- specification. Use
- FIRST_BYTE_OFFSET to specify the start of the
- data range, and LAST_BYTE_OFFSET to specify
- the end. You can omit the LAST_BYTE_OFFSET and
- if you do, the value defaults to the offset of
- the last byte of data.
-
-
- Suffix byte range
- specification. Use LENGTH bytes
- to specify the length of the data
- range.
-
-
- The following forms of the header specify the
- following ranges of data:
-
- Range: bytes=-5
. The last
- five bytes.
-
- Range: bytes=10-15
. The five
- bytes of data after a 10-byte
- offset.
- Range: bytes=10-15,-5
. A
- multi-part response that contains the last
- five bytes and the five bytes of data after a
- 10-byte offset. The Content-Type
- of the response is then
- multipart/byteranges
.
-
- Range: bytes=4-6
. Bytes 4 to 6
- inclusive.
-
- Range: bytes=2-2
. Byte 2, the
- third byte of the data.
-
- Range: bytes=6-
. Byte 6 and
- after.
-
- Range: bytes=1-3,2-5
. A
- multi-part response that contains bytes 1 to 3
- inclusive, and bytes 2 to 5 inclusive. The
- Content-Type
of the response
- is then
- multipart/byteranges
.
-
-
-
-
- Set to True
- in &HEAD; and &GET; requests to have Object
- Storage query all replicas to return the most
- recent one. If you omit this header, Object
- Storage responds faster after it finds one
- valid replica. Because setting this header to
- True is more expensive
- for the back-end, use it only when it is
- absolutely needed.
-
-
-
-
-
-
-
-
-
-
-
-
- Creates or updates the content and
- metadata for a specified object.
-
-
-
- The MD5 checksum of your
- object's data.
-
-
- The new browser behavior for
- the file, so that the downloader can save the
- file rather than displaying it using default
- browser settings.
-
-
- The underlying media type of
- the compressed file.
-
-
- The certain date, in the
- format of a Unix Epoch timestamp, when the
- object will be removed.
-
-
- The certain date, in the
- format of a Unix Epoch timestamp, after which
- the object will be removed.
-
-
- The custom object metadata. *
- represents the name of
- metadata.
-
-
-
-
-
-
-
-
-
-
-
- Copies an object to another object
- in the OpenStack Object Storage system.
-
-
-
- The container and object name
- of the source object in the form of
- /container/object
.
-
-
- The content length, which is
- zero under this situation.
-
-
-
-
-
-
-
-
-
-
-
- Copies an object to another object
- with a new name in the Object Storage system.
-
-
-
- The container and object name
- of the destination object in the form of
- /container/object
.
-
-
-
-
-
-
-
-
-
-
-
- Gets object metadata and other
- standard HTTP headers.
-
-
-
- Set to True
- in &HEAD; and &GET; requests to have Object
- Storage query all replicas to return the most
- recent one. If you omit this header, Object
- Storage responds faster after it finds one
- valid replica. Because setting this header to
- True is more expensive
- for the back-end, use it only when it is
- absolutely needed.
-
-
-
-
-
-
-
-
-
-
-
-
- Updates arbitrary key/value
- metadata. Metadata must be in the format
- X-Object-Meta-*. You can also assign X-Delete-At or
- X-Delete-After to expiring objects. You cannot use
- this operation to change other headers, such as
- Content-Type.
-
-
-
- The container metadata. *
- represents the name of
- metadata.
-
-
- The certain date, in the
- format of a Unix Epoch timestamp, when the
- object will be removed.
-
-
- The certain date, in the
- format of a Unix Epoch timestamp, after which
- the object is removed.
-
-
-
+ xml:lang="EN"
+ title="Show container details response: HTTP and JSON">
+ href="samples/object_list_http_response_json.txt"/>
+
-
-
+
+
+
+
+
+
+ &fault404;
+
+
+
+ Creates a container.
+ You do not need to check if a container already
+ exists before issuing a &PUT; operation because the
+ operation is idempotent: It creates a container or
+ updates an existing container, as appropriate.
+ Example requests and responses:
+ Create a container with no metadata:
+ curl -i $publicURL/steven -X PUT -H
+ "Content-Length: 0" -H "X-Auth-Token:
+ $token"
+ HTTP/1.1 201 Created
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx7f6b7fa09bc2443a94df0-0052d58b56
+Date: Tue, 14 Jan 2014 19:09:10 GMT
+
+ Create a container with
+ metadata:curl -i
+ $publicURL/marktwain -X PUT -H
+ "X-Auth-Token: $token" -H
+ "X-Container-Meta-Book:
+ TomSawyer"
+ HTTP/1.1 201 Created
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx06021f10fc8642b2901e7-0052d58f37
+Date: Tue, 14 Jan 2014 19:25:43 GMT
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+
+ &auth-token-requestHeader-required;
+ &container-read-requestHeader;
+ &container-write-requestHeader;
+ &container-sync-to-requestHeader;
+ &container-sync-key-requestHeader;
+ &versions-location-requestHeader;
+ &container-meta-name-requestHeader;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader;
-
+
+
+
+ Creates, updates, or deletes custom
+ metadata for a container.
+ To create, update, or delete a custom metadata item,
+ use the X-Container-Meta-{name}
header,
+ where {name}
is the name of the metadata
+ item.
+ Subsequent requests for the same key and value pair
+ overwrite the previous value.
+ To delete container metadata, send an empty value
+ for that header, such as for the
+ X-Container-Meta-Book
header. If the
+ tool you use to communicate with Object Storage, such
+ as an older version of cURL, does not support empty
+ headers, send the
+ X-Remove-Container-Meta-{name}
:
+ arbitrary value header.
+ For example, X-Remove-Container-Meta-Book:
+ x
. The operation ignores the arbitrary
+ value.
+ If the container already has other custom metadata
+ items, a request to create, update, or delete metadata
+ does not affect those items.
+ This operation does not accept a request
+ body.
+ Example requests and
+ responses:Create
+ container metadata:curl -i
+ $publicURL/marktwain -X POST -H
+ "X-Auth-Token: $token" -H
+ "X-Container-Meta-Author: MarkTwain" -H
+ "X-Container-Meta-Century:
+ Nineteenth"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx05dbd434c651429193139-0052d82635
+Date: Thu, 16 Jan 2014 18:34:29 GMT
+ Update container
+ metadata:curl -i
+ $publicURL/marktwain -X POST -H
+ "X-Auth-Token: $token" -H
+ "X-Container-Meta-Author:
+ SamuelClemens"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: txe60c7314bf614bb39dfe4-0052d82653
+Date: Thu, 16 Jan 2014 18:34:59 GMT
+ Delete container
+ metadata:curl -i
+ $publicURL/marktwain -X POST -H
+ "X-Auth-Token: $token" -H
+ "X-Remove-Container-Meta-Century:
+ x"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx7997e18da2a34a9e84ceb-0052d826d0
+Date: Thu, 16 Jan 2014 18:37:04 GMT
+
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If the request succeeds, the operation returns the
+ 204 status code.
+ To confirm your changes, issue a show container
+ metadata request.
+
+ &auth-token-requestHeader-required;
+ &container-read-requestHeader;
+ &remove-container-name-requestHeader;
+ &container-write-requestHeader;
+ &container-sync-to-requestHeader;
+ &container-sync-key-requestHeader;
+ &versions-location-requestHeader;
+ &remove-versions-location-requestHeader;
+ &container-meta-name-requestHeader;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader;
+
+
+
+
+ Shows container metadata, including
+ the number of objects and the total bytes of all
+ objects stored in the container.
+ Show container metadata
+ request:curl -i
+ $publicURL/marktwain -X HEAD -H "X-Auth-Token:
+ $token"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+X-Container-Object-Count: 1
+Accept-Ranges: bytes
+X-Container-Meta-Book: TomSawyer
+X-Timestamp: 1389727543.65372
+X-Container-Meta-Author: SamuelClemens
+X-Container-Bytes-Used: 14
+Content-Type: text/plain; charset=utf-8
+X-Trans-Id: tx0287b982a268461b9ec14-0052d826e2
+Date: Thu, 16 Jan 2014 18:37:22 GMT
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If the request succeeds, the operation returns the
+ 204 status code.
+
+ &auth-token-requestHeader-optional;
+ &newest-requestHeader;
+ &content-length-responseHeader-OP;
+ &container-object-count-responseHeader;
+ &accept-ranges-responseHeader;
+ &container-meta-name-responseHeader;
+ &container-bytes-used-responseHeader;
+ &container-read-responseHeader;
+ &container-write-responseHeader;
+ &container-sync-to-responseHeader;
+ &container-sync-key-responseHeader;
+ &versions-location-responseHeader;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader;
+
+
+
+
+ Deletes an empty container.
+ This operation fails unless the container is empty.
+ An empty container has no objects.
+ Delete the steven
+ container:curl -i
+ $publicURL/steven -X DELETE -H "X-Auth-Token:
+ $token"
+ If the container does not exist, the response
+ is:
+ HTTP/1.1 404 Not Found
+Content-Length: 70
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx4d728126b17b43b598bf7-0052d81e34
+Date: Thu, 16 Jan 2014 18:00:20 GMT
+ If the container exists and the deletion succeeds,
+ the response is:
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: txf76c375ebece4df19c84c-0052d81f14
+Date: Thu, 16 Jan 2014 18:04:04 GMT
+ If the container exists but is not empty, the
+ response is:
+ HTTP/1.1 409 Conflict
+Content-Length: 95
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx7782dc6a97b94a46956b5-0052d81f6b
+Date: Thu, 16 Jan 2014 18:05:31 GMT
+
+<html><h1>Conflict</h1><p>There was a conflict when trying to complete your request.</p></html>
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+
+ &auth-token-requestHeader-required;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader-OP; &trans-id-responseHeader;
+ &date-responseHeader; &fault404; &fault409;
+
+
+
+
+
+
+ Downloads the object content and
+ gets the object metadata.
+ This operation returns the object metadata in the
+ response headers and the object content in the
+ response body.
+ If this is a large object, the response body
+ contains the concatenated content of the segment
+ objects. To get the manifest instead of concatenated
+ segment objects for a static large object, use the
+ multipart-manifest
query
+ parameter.
+ Example requests and responses:
+ Show object details for the
+ goodbye
object in the
+ marktwain
container:
+ curl -i $publicURL/marktwain/goodbye
+ -X GET -H "X-Auth-Token:
+ $token"
+ HTTP/1.1 200 OK
+Content-Length: 14
+Accept-Ranges: bytes
+Last-Modified: Wed, 15 Jan 2014 16:41:49 GMT
+Etag: 451e372e48e0f6b1114fa0724aa79fa1
+X-Timestamp: 1389804109.39027
+X-Object-Meta-Orig-Filename: goodbyeworld.txt
+Content-Type: application/octet-stream
+X-Trans-Id: tx8145a190241f4cf6b05f5-0052d82a34
+Date: Thu, 16 Jan 2014 18:51:32 GMT
+
+Goodbye World!
+
+
+ Show object details for the
+ goodbye
object, which does
+ not exist, in the janeausten
+ container:curl -i
+ $publicURL/janeausten/goodbye -X GET -H
+ "X-Auth-Token: $token"
+ HTTP/1.1 404 Not Found
+Content-Length: 70
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx073f7cbb850c4c99934b9-0052d82b04
+Date: Thu, 16 Jan 2014 18:55:00 GMT
+
+<html><h1>Not Found</h1><p>The resource could not be found.</p></html>
+
+
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+
+ &auth-token-requestHeader-optional;
+ &newest-requestHeader; &signature-requestParameter;
+ &expires-requestParameter;
+ &multipart-manifest-get-requestParameter;
+ &range-requestHeader; &if-match-requestHeader;
+ &if-none-match-requestHeader;
+ &if-modified-since-requestHeader;
+ &if-unmodified-since-requestHeader;
+ &content-length-responseHeader;
+ &accept-ranges-responseHeader;
+ &last-modified-responseHeader; &ETag-responseHeader;
+ &content-type-responseHeader;
+ &content-encoding-responseHeader;
+ &content-disposition-responseHeader;
+ &delete-at-responseHeader;
+ &object-meta-name-responseHeader;
+ &object-manifest-responseHeader;
+ &static-large-object-responseHeader;
+ &trans-id-responseHeader; &date-responseHeader;
+ &fault404;
+
+
+
+ Creates a new object with specified
+ data content and metadata, or replaces an existing
+ object with specified data content and
+ metadata.
+ The &PUT; operation always creates a new object. If
+ you use this operation on an existing object, you
+ replace the existing object and metadata rather than
+ modifying the object. Consequently, this operation
+ returns a 201 Created
status code.
+ If you use this operation to copy a manifest object,
+ the new object is a normal object and not a copy of
+ the manifest. Instead it is a concatenation of all the
+ segment objects. This means that you cannot copy
+ objects larger than 5 GB in size. All metadata is
+ preserved during the object copy. If you specify
+ metadata on the request to copy the object, either
+ &PUT; or ©, the metadata overwrites any
+ conflicting keys on the target (new) object.
+ Example requests and responses:
+
+ Create object:
+ curl -i
+ $publicURL/janeausten/helloworld.txt -X
+ PUT -H "Content-Length: 1" -H
+ "Content-Type: text/html; charset=UTF-8"
+ -H "X-Auth-Token: $token"
+ HTTP/1.1 201 Created
+Last-Modified: Fri, 17 Jan 2014 17:28:35 GMT
+Content-Length: 116
+Etag: d41d8cd98f00b204e9800998ecf8427e
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx4d5e4f06d357462bb732f-0052d96843
+Date: Fri, 17 Jan 2014 17:28:35 GMT
+ Replace object:curl
+ -i $publicURL/janeausten/helloworld -X PUT
+ -H "Content-Length: 0" -H "X-Auth-Token:
+ $token"
+ HTTP/1.1 201 Created
+Last-Modified: Fri, 17 Jan 2014 17:28:35 GMT
+Content-Length: 116
+Etag: d41d8cd98f00b204e9800998ecf8427e
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx4d5e4f06d357462bb732f-0052d96843
+Date: Fri, 17 Jan 2014 17:28:35 GMT
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ The 201 Created
status code indicates a
+ successful write.
+ If the request times out, the operation returns the
+ 408 Request Timeout
error
+ code.
+ The 411 Length Required
error code
+ indicates a missing Transfer-Encoding
or
+ Content-Length
request header.
+ If the MD5 checksum of the data that is written to
+ the object store does not match the optional
+ ETag
value, the operation returns the
+ 422 Unprocessable Entity
error
+ code.
+
+ &multipart-manifest-put-requestParameter;
+ &signature-requestParameter; &expires-requestParameter;
+ &object-manifest-requestHeader;
+ &auth-token-requestHeader-optional;
+ &content-length-requestHeader-putObj;
+ &transfer-encoding-requestHeader;
+ &content-type-requestHeader; ©-from-requestHeader;
+ &ETag-requestHeader; &content-disposition-requestHeader;
+ &content-encoding-requestHeader; &delete-at-requestHeader;
+ &delete-after-requestHeader;
+ &object-meta-name-requestHeader;
+ &last-modified-responseField;
+ &content-length-responseHeader-OP;
+ &ETag-responseHeader-PUT; &content-type-responseHeader;
+ &trans-id-responseHeader; &date-responseHeader;
+ &fault408; &fault411; &fault422;
+
+
+
+ Copies an object to another object
+ in the object store.
+ The new object can be in the same container, but
+ have a different name from the original object. Or,
+ the new object can have the same or a different name
+ and be located in a different container than the
+ original object.
+ Alternatively, you can use &PUT; with the
+ X-Copy-From
request header to
+ accomplish the same operation as the © object
+ operation.
+ The &PUT; operation always creates a new object. If
+ you use this operation on an existing object, you
+ replace the existing object and metadata rather than
+ modifying the object. Consequently, this operation
+ returns a 201 Created
success
+ node.
+ If you use this operation to copy a manifest object,
+ the new object is a normal object and not a copy of
+ the manifest. Instead it is a concatenation of all the
+ segment objects. This means that you cannot copy
+ objects larger than 5 GB in size. All metadata is
+ preserved during the object copy. If you specify
+ metadata on the request to copy the object, either
+ &PUT; or ©, the metadata overwrites any
+ conflicting keys on the target (new) object.
+ Example requests and responses:
+
+ Copy the goodbye
object
+ from the marktwain
container to
+ the janeausten
container:
+ curl -i $publicURL/marktwain/goodbye
+ -X COPY -H "X-Auth-Token: $token" -H
+ "Destination: janeausten/goodbye"
+ HTTP/1.1 201 Created
+Content-Length: 0
+X-Copied-From-Last-Modified: Thu, 16 Jan 2014 21:19:45 GMT
+X-Copied-From: marktwain/goodbye
+Last-Modified: Fri, 17 Jan 2014 18:22:57 GMT
+Etag: 451e372e48e0f6b1114fa0724aa79fa1
+Content-Type: text/html; charset=UTF-8
+X-Object-Meta-Movie: AmericanPie
+X-Trans-Id: txdcb481ad49d24e9a81107-0052d97501
+Date: Fri, 17 Jan 2014 18:22:57 GMT
+ Alternatively, you can use &PUT; to
+ copy the goodbye
object from the
+ marktwain
container to the
+ janeausten
container. This
+ request requires a Content-Length
+ header even if it is set to zero (0).
+ curl -i $publicURL/janeausten/goodbye
+ -X PUT -H "X-Auth-Token: $token" -H
+ "X-Copy-From: /marktwain/goodbye" -H
+ "Content-Length: 0"
+ HTTP/1.1 201 Created
+Content-Length: 0
+X-Copied-From-Last-Modified: Thu, 16 Jan 2014 21:19:45 GMT
+X-Copied-From: marktwain/goodbye
+Last-Modified: Fri, 17 Jan 2014 18:22:57 GMT
+Etag: 451e372e48e0f6b1114fa0724aa79fa1
+Content-Type: text/html; charset=UTF-8
+X-Object-Meta-Movie: AmericanPie
+X-Trans-Id: txdcb481ad49d24e9a81107-0052d97501
+Date: Fri, 17 Jan 2014 18:22:57 GMT
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+
+ &auth-token-requestHeader-optional;
+ &destination-requestHeader; &content-type-requestHeader;
+ &content-encoding-requestHeader;
+ &content-disposition-requestHeader;
+ &object-meta-name-requestHeader;
+ &content-length-responseHeader-OP;
+ &copied-from-last-modified-responseHeader;
+ &copied-from-responseHeader;
+ &last-modified-responseHeader; &ETag-responseHeader-COPY;
+ &content-type-responseHeader;
+ &object-meta-name-responseHeader;
+ &trans-id-responseHeader; &date-responseHeader;
+
+
+
+
Permanently deletes an object from
- the OpenStack Object Storage system. In combination
- with the © command, you can use © and then
- &DELETE; to effectively move an object.
+ the object store.
+ You can use the © method to copy the object to
+ a new location. Then, use the &DELETE; method to
+ delete the original object.
+ Object deletion occurs immediately at request time.
+ Any subsequent &GET;, &HEAD;, &POST;, or &DELETE;
+ operations return a 404 Not Found
error
+ code.
+ For static large object manifests, you can add the
+ ?multipart-manifest=delete
query
+ parameter. This operation deletes the segment objects
+ and if all deletions succeed, this operation deletes
+ the manifest object.
+ Example request and response:
+ Delete the
+ helloworld
object from the
+ marktwain
container:
+ curl -i
+ $publicURL/marktwain/helloworld -X DELETE
+ -H "X-Auth-Token: $token"
+ HTTP/1.1 204 No Content
+Content-Length: 0
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx36c7606fcd1843f59167c-0052d6fdac
+Date: Wed, 15 Jan 2014 21:29:16 GMT
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ Normally the &DELETE; operation does not return a
+ response body. However, with the
+ multipart-manifest=delete
query
+ parameter, the response body contains a list of
+ manifest and segment objects and the status of their
+ delete operations.
-
+ &multipart-manifest-delete-requestParameter;
+ &auth-token-requestHeader-optional;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader; &trans-id-responseHeader;
+ &date-responseHeader;
+
+
+
+
+ Shows object metadata.
+ If the Content-Length
response header
+ is non-zero, the example cURL command stalls after it
+ prints the response headers because it is waiting for
+ a response body. However, the Object Storage system
+ does not return a response body for the &HEAD;
+ operation.
+ Example requests and
+ responses:Show
+ object metadata:curl -i
+ $publicURL/marktwain/goodbye -X HEAD -H
+ "X-Auth-Token: $token"
+ HTTP/1.1 200 OK
+Content-Length: 14
+Accept-Ranges: bytes
+Last-Modified: Thu, 16 Jan 2014 21:12:31 GMT
+Etag: 451e372e48e0f6b1114fa0724aa79fa1
+X-Timestamp: 1389906751.73463
+X-Object-Meta-Book: GoodbyeColumbus
+Content-Type: application/octet-stream
+X-Trans-Id: tx37ea34dcd1ed48ca9bc7d-0052d84b6f
+Date: Thu, 16 Jan 2014 21:13:19 GMT
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+ If the request succeeds, the operation returns the
+ 204 status code.
+
+ &auth-token-requestHeader-required;
+ &signature-requestParameter; &expires-requestParameter;
+ &newest-requestHeader;
+ &last-modified-responseHeader;
+ &content-length-responseHeader;
+ &content-length-responseHeader-HEAD;
+ &content-type-responseHeader; &ETag-responseHeader;
+ &content-encoding-responseHeader;
+ &content-disposition-responseHeader;
+ &delete-at-responseHeader;
+ &object-manifest-responseHeader;
+ &object-meta-name-responseHeader;
+ &static-large-object-responseHeader;
+ &trans-id-responseHeader; &date-responseHeader;
+
+
+
+
+ Creates or updates object
+ metadata.
+ To create or update custom metadata, use the
+ X-Object-Meta-{name}
header, where
+ {name}
is the name of the metadata
+ item.
+ In addition to the custom metadata, you can also
+ update these system metadata items:
+ Content-Type
+ Content-Encoiding
+ Content-Disposition
+ X-Delete-At
. However you cannot update
+ other system metadata such as
+ Content-Length
or
+ Last-Modified
.
+ A &POST; request deletes any existing custom
+ metadata that you added with a previous &PUT; or
+ &POST; request. Consequently, you must specify all
+ custom metadata in the request. However, system
+ metadata is unchanged by the &POST; request unless you
+ explicitly supply it in a request header.
+ You can also set the X-Delete-At
or
+ X-Delete-After
header to define when
+ to expire the object.
+ When used as described in this section, the &POST;
+ operation creates or replaces metadata. This form of
+ the operation has no request body. The form &POST;
+ feature can also use the &POST; operation to upload
+ objects. For more information about form &POST; see
+ OpenStack Object Storage API v1
+ Reference.
+ Example requests and
+ responses:Create
+ object metadata:curl -i
+ $publicURL/marktwain/goodbye -X POST -H
+ "X-Auth-Token: $token" -H
+ "X-Object-Meta-Book:
+ GoodbyeColumbus"
+ HTTP/1.1 202 Accepted
+Content-Length: 76
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: txb5fb5c91ba1f4f37bb648-0052d84b3f
+Date: Thu, 16 Jan 2014 21:12:31 GMT
+
+<html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>
+ Update object
+ metadata:curl -i
+ $publicURL/marktwain/goodbye -X POST -H
+ "X-Auth-Token: $token" -H
+ "X-Object-Meta-Book:
+ GoodbyeOldFriend"
+ HTTP/1.1 202 Accepted
+Content-Length: 76
+Content-Type: text/html; charset=UTF-8
+X-Trans-Id: tx5ec7ab81cdb34ced887c8-0052d84ca4
+Date: Thu, 16 Jan 2014 21:18:28 GMT
+
+<html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>
+
+ For a complete description of HTTP 1.1 header
+ definitions, see Header Field Definitions.
+
+ &auth-token-requestHeader-optional;
+ &object-meta-name-requestHeader; &delete-at-requestHeader;
+ &content-disposition-requestHeader;
+ &content-encoding-requestHeader;
+ &delete-after-requestHeader; &content-type-requestHeader;
+ &content-length-responseHeader-OP;
+ &content-type-responseHeader; &trans-id-responseHeader;
+ &date-responseHeader;
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_json.txt b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_json.txt
new file mode 100644
index 000000000..a4b315556
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_json.txt
@@ -0,0 +1 @@
+curl -i https://23.253.72.207/v1/$account?format=json -X GET -H "X-Auth-Token: $token"
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_xml.txt b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_xml.txt
new file mode 100644
index 000000000..cf255617f
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_request_xml.txt
@@ -0,0 +1,2 @@
+curl -i https://23.253.72.207/v1/$account?format=xml \
+ -X GET -H "X-Auth-Token: $token"
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_json.txt b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_json.txt
new file mode 100644
index 000000000..0cdba62a8
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_json.txt
@@ -0,0 +1,11 @@
+HTTP/1.1 200 OK
+Content-Length: 96
+X-Account-Object-Count: 1
+X-Timestamp: 1389453423.35964
+X-Account-Meta-Subject: Literature
+X-Account-Bytes-Used: 14
+X-Account-Container-Count: 2
+Content-Type: application/json; charset=utf-8
+Accept-Ranges: bytes
+X-Trans-Id: tx274a77a8975c4a66aeb24-0052d95365
+Date: Fri, 17 Jan 2014 15:59:33 GMT
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_xml.txt b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_xml.txt
new file mode 100644
index 000000000..6ad781aae
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_http_response_xml.txt
@@ -0,0 +1,11 @@
+HTTP/1.1 200 OK
+Content-Length: 262
+X-Account-Object-Count: 1
+X-Timestamp: 1389453423.35964
+X-Account-Meta-Subject: Literature
+X-Account-Bytes-Used: 14
+X-Account-Container-Count: 2
+Content-Type: application/xml; charset=utf-8
+Accept-Ranges: bytes
+X-Trans-Id: tx69f60bc9f7634a01988e6-0052d9544b
+Date: Fri, 17 Jan 2014 16:03:23 GMT
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.json b/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.json
new file mode 100644
index 000000000..30dc690c2
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.json
@@ -0,0 +1,12 @@
+[
+ {
+ "count":0,
+ "bytes":0,
+ "name":"janeausten"
+ },
+ {
+ "count":1,
+ "bytes":14,
+ "name":"marktwain"
+ }
+]
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.xml b/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.xml
new file mode 100644
index 000000000..d8f51cfa0
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/account_containers_list_response.xml
@@ -0,0 +1,13 @@
+
+
+
+ janeausten
+ 0
+ 0
+
+
+ marktwain
+ 1
+ 14
+
+
diff --git a/api-ref/src/wadls/object-api/src/samples/container_list_http_request.txt b/api-ref/src/wadls/object-api/src/samples/container_list_http_request.txt
new file mode 100644
index 000000000..4101ce80e
--- /dev/null
+++ b/api-ref/src/wadls/object-api/src/samples/container_list_http_request.txt
@@ -0,0 +1,3 @@
+GET /{api_version}/{account} HTTP/1.1
+Host: storage.swiftdrive.com
+X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
\ No newline at end of file
diff --git a/api-ref/src/wadls/object-api/src/samples/listcontainers_http_response.msg b/api-ref/src/wadls/object-api/src/samples/container_list_http_response.txt
similarity index 84%
rename from api-ref/src/wadls/object-api/src/samples/listcontainers_http_response.msg
rename to api-ref/src/wadls/object-api/src/samples/container_list_http_response.txt
index 3e52c57dc..43070e523 100644
--- a/api-ref/src/wadls/object-api/src/samples/listcontainers_http_response.msg
+++ b/api-ref/src/wadls/object-api/src/samples/container_list_http_response.txt
@@ -1,9 +1,8 @@
HTTP/1.1 200 Ok
Date: Thu, 07 Jun 2010 18:57:07 GMT
-Server: Apache
Content-Type: text/plain; charset=UTF-8
Content-Length: 32
-
+
images
movies
documents
diff --git a/api-ref/src/wadls/object-api/src/samples/containerlist.json b/api-ref/src/wadls/object-api/src/samples/containerlist.json
deleted file mode 100644
index a21357c7e..000000000
--- a/api-ref/src/wadls/object-api/src/samples/containerlist.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
- {"name":"test_container_1", "count":2, "bytes":78},
- {"name":"test_container_2", "count":1, "bytes":17}
-]
diff --git a/api-ref/src/wadls/object-api/src/samples/copyobj_httphead.msg b/api-ref/src/wadls/object-api/src/samples/copyobj_httphead.msg
deleted file mode 100644
index a5a043095..000000000
--- a/api-ref/src/wadls/object-api/src/samples/copyobj_httphead.msg
+++ /dev/null
@@ -1,5 +0,0 @@
-PUT /v1/// HTTP/1.1
-Host: storage.swiftdrive.com
-X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
-X-Copy-From: //
-Content-Length: 0
diff --git a/api-ref/src/wadls/object-api/src/samples/createcontainer_httphead.msg b/api-ref/src/wadls/object-api/src/samples/createcontainer_httphead.msg
deleted file mode 100644
index c3effb743..000000000
--- a/api-ref/src/wadls/object-api/src/samples/createcontainer_httphead.msg
+++ /dev/null
@@ -1,4 +0,0 @@
-PUT /v1// HTTP/1.1
-Host: storage.clouddrive.com
-X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
-X-Container-Meta-InspectedBy: JackWolf
diff --git a/api-ref/src/wadls/object-api/src/samples/createobj_http.msg b/api-ref/src/wadls/object-api/src/samples/createobj_http.msg
deleted file mode 100644
index 3640481a9..000000000
--- a/api-ref/src/wadls/object-api/src/samples/createobj_http.msg
+++ /dev/null
@@ -1,11 +0,0 @@
-PUT /v1///