docs: add discussion of content-type metadata
Change-Id: I2aa13e2b23bda86c51ef6aaa69ea3fd0075bb9ad
This commit is contained in:
parent
627448362a
commit
cc27780042
@ -263,9 +263,9 @@ metadata items stored with an object while leaving some items unchanged.
|
|||||||
|
|
||||||
.. _sysmeta:
|
.. _sysmeta:
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
System Metadata
|
System Metadata (Sysmeta)
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
System metadata takes the form of ``X-<type>-Sysmeta-<key>: <value>``,
|
System metadata takes the form of ``X-<type>-Sysmeta-<key>: <value>``,
|
||||||
where ``<type>`` depends on the resources type (i.e. Account, Container,
|
where ``<type>`` depends on the resources type (i.e. Account, Container,
|
||||||
@ -303,11 +303,60 @@ individual items of user metadata is not supported. In cases where middleware
|
|||||||
needs to store its own metadata with a POST request, it may use Object Transient
|
needs to store its own metadata with a POST request, it may use Object Transient
|
||||||
Sysmeta.
|
Sysmeta.
|
||||||
|
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
Object Metadata
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Objects have other metadata in addition to the user metadata and system
|
||||||
|
metadata described above.
|
||||||
|
|
||||||
|
******************
|
||||||
|
Immutable Metadata
|
||||||
|
******************
|
||||||
|
|
||||||
|
Objects have several items of immutable metadata. Like system metadata, these
|
||||||
|
may only be set using PUT requests. However, they do not follow the general
|
||||||
|
``X-Object-Sysmeta-<key>`` naming scheme and they are not automatically removed
|
||||||
|
from client responses.
|
||||||
|
|
||||||
|
Object immutable metadata includes::
|
||||||
|
|
||||||
|
X-Timestamp
|
||||||
|
Content-Length
|
||||||
|
Etag
|
||||||
|
|
||||||
|
``X-Timestamp`` and ``Content-Length`` metadata MUST be included in PUT
|
||||||
|
requests to object servers. ``Etag`` metadata is generated by object servers
|
||||||
|
when they handle a PUT request, but checked against any ``Etag`` header sent
|
||||||
|
with the PUT request.
|
||||||
|
|
||||||
|
Object immutable metadata, along with ``Content-Type``, is the only object
|
||||||
|
metadata that is stored by container servers and returned in object listings.
|
||||||
|
|
||||||
|
************
|
||||||
|
Content-Type
|
||||||
|
************
|
||||||
|
|
||||||
|
Object ``Content-Type`` metadata is treated differently from immutable
|
||||||
|
metadata, system metadata and user metadata.
|
||||||
|
|
||||||
|
``Content-Type`` MUST be included in PUT requests to object servers. Unlike
|
||||||
|
immutable metadata or system metadata, ``Content-Type`` is mutable and may be
|
||||||
|
included in POST requests to object servers. However, unlike object user
|
||||||
|
metadata, existing ``Content-Type`` metadata persists if a POST request does
|
||||||
|
not include new ``Content-Type`` metadata. This is because an object must have
|
||||||
|
``Content-Type`` metadata, which is also stored by container servers and
|
||||||
|
returned in object listings.
|
||||||
|
|
||||||
|
``Content-Type`` is the only item of object metadata that is both mutable and
|
||||||
|
yet also persists when not specified in a POST request.
|
||||||
|
|
||||||
.. _transient_sysmeta:
|
.. _transient_sysmeta:
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
************************
|
||||||
Object Transient-Sysmeta
|
Object Transient-Sysmeta
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
************************
|
||||||
|
|
||||||
If middleware needs to store object metadata with a POST request it may do so
|
If middleware needs to store object metadata with a POST request it may do so
|
||||||
using headers of the form ``X-Object-Transient-Sysmeta-<key>: <value>``.
|
using headers of the form ``X-Object-Transient-Sysmeta-<key>: <value>``.
|
||||||
|
Loading…
Reference in New Issue
Block a user