
Point to WADL files that generate the API Reference page so that the method descriptions and request and response parameters are consistent between these two docs: http://api.openstack.org/api-ref-objectstorage.html (API Reference page for Object Storage) http://docs.openstack.org/api/openstack-object-storage/1.0/ (API Reference (or spec) for Object Storage) Add descriptions of ACLs, FormPOST, TempURLs, StaticWeb, Bulk Upload, Bulk Delete, the OPTIONS operation (though this is implicit in CORS support) Validate all code examples Remove duplication. Co-Author: Donagh McCabe Closes-Bug: #1187119 Closes-Bug: #1214139 Closes-Bug: #1074198 Partial-Bug: #1255770 Change-Id: I94054b046a94260ba8825bdb42439adfcaf9fdce author: diane fleming
105 lines
5.5 KiB
XML
105 lines
5.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE section [
|
|
<!-- Useful for describing APIs -->
|
|
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
|
|
<!ENTITY HEAD '<command xmlns="http://docbook.org/ns/docbook">HEAD</command>'>
|
|
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
|
|
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
|
|
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
|
|
]>
|
|
<section xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
xmlns:svg="http://www.w3.org/2000/svg"
|
|
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
|
xmlns:html="http://www.w3.org/1999/xhtml"
|
|
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
|
|
xml:id="container-sync">
|
|
<?dbhtml stop-chunking?>
|
|
<title>Container synchronization</title>
|
|
<para>To discover whether your Object Storage system supports
|
|
container synchronization, see <xref linkend="discoverability"
|
|
/>. Alternatively, check with your service provider.</para>
|
|
<para>Container synchronization enables you to synchronize the
|
|
contents of a source container with a destination container.
|
|
After you set up container synchronization, the system
|
|
automatically copies objects from the source container to the
|
|
destination container. Also, the system deletes objects in the
|
|
destination container that were deleted in the source
|
|
container.</para>
|
|
<para>The system copies objects in a way that object metadata is
|
|
retained, such as <literal>Last-Modified</literal> and any
|
|
custom metadata you might have set for the object.</para>
|
|
<para>You can configure the source and destination containers, as
|
|
follows:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The source container can be on a different or the
|
|
same Object Storage system that the destination
|
|
container is on.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The destination container can be a source container
|
|
for synchronization for another destination container.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The destination container can be the original source
|
|
container: both containers synchronize with each
|
|
other. Any object that you add to or delete from a
|
|
container is automatically copied to or deleted from
|
|
the other container.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>The Object Storage system performs the synchronization in
|
|
the background, and makes no guarantees about performance or
|
|
timeliness.</para>
|
|
<para>Some Object Storage features, such as large object creation,
|
|
might require the use of several containers. Container
|
|
synchronization handles each container separately; if your
|
|
object segments are located in a different container, they are
|
|
not transferred unless you also set up container
|
|
synchronization on that container. However, even if both the
|
|
manifest and segment containers are synchronized, there is no
|
|
guarantee that the manifest is transferred before the segment
|
|
objects. An attempt to download the large object from the
|
|
destination container might fail, be incomplete, or have
|
|
jumbled content. Object versioning is not supported.</para>
|
|
<para>To configure a <emphasis role="italic">source</emphasis>
|
|
container for synchronization, set the following metadata
|
|
headers:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><literal>X-Container-Sync-To</literal>. Set this
|
|
metadata header to the following value:</para>
|
|
<programlisting>//<replaceable>REALM</replaceable>/<replaceable>SYSTEM</replaceable>/<replaceable>DESTINATION_ACCOUNT</replaceable>/<replaceable>DESTINATION_CONTAINER_NAME</replaceable></programlisting>
|
|
<para>Your service provider can give you the appropriate
|
|
values for
|
|
<literal><replaceable>REALM</replaceable></literal>
|
|
and
|
|
<literal><replaceable>SYSTEM</replaceable></literal>.
|
|
The objects are sent to the
|
|
<literal><replaceable>DESTINATION_ACCOUNT</replaceable>/<replaceable>DESTINATION_CONTAINER_NAME</replaceable></literal>
|
|
container. These names can be different from the
|
|
source account and container names.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><literal>X-Container-Sync-Key</literal>. Set this
|
|
metadata header to an arbitrary string value. This
|
|
value serves as a shared secret. Secure this value
|
|
just as you would a password.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>To configure a <emphasis role="italic"
|
|
>destination</emphasis> container to receive objects, set
|
|
the <literal>X-Container-Sync-Key</literal> metadata header to
|
|
the <literal>X-Container-Sync-Key</literal> value in the
|
|
source container.</para>
|
|
<note>
|
|
<para>To configure a destination container as the source
|
|
container for another destination container, set the
|
|
<literal>X-Container-Sync-To</literal> metadata header
|
|
as you would for a source container.</para>
|
|
</note>
|
|
</section>
|