~todd-deshane/openstack-manuals/working

« back to all changes in this revision

Viewing changes to doc/buildpdf/rc-maven-cloud-docs/target/docbkx/pdf/os-objectstorage-devguide.fo

  • Committer: Anne Gentle
  • Date: 2011-04-04 17:54:52 UTC
  • Revision ID: anne@openstack.org-20110404175452-gtth3hfrniqhpp5o
Switching from Ant builds to Maven, still working out kinks but should be functional

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0" encoding="utf-8"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="CartoGothic Std" font-size="10.5pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" writing-mode="lr-tb" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="blank-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="titlepage-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:simple-page-master master-name="cloudpage-first" page-width="8.5in" page-height="11in" margin-top="0.0in" margin-bottom="0.0in" margin-left="0.0in" margin-right="0.0in"><fo:region-body margin-bottom="0.0in" margin-top="0.0in" column-gap="0pt" column-count="1"/><fo:region-before extent="11.0in" display-align="before" background-image="url(/Users/anne.gentle/src/openstack-manuals/postbex/doc/buildpdf/rc-maven-cloud-docs/target/docbkx/images/cloud/cover.svg)" background-repeat="no-repeat" background-position-horizontal="0%" background-position-vertical="0%"/></fo:simple-page-master><fo:page-sequence-master master-name="cloud-titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="cloudpage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:declarations><x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xapRights="http://ns.adobe.com/xap/1.0/rights/" rdf:about=""><xapRights:Marked>True</xapRights:Marked></rdf:Description><rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about=""><dc:rights><rdf:Alt><rdf:li xml:lang="x-default">Copyright © 2010, 2011 OpenStack, LLC All rights reserved.</rdf:li></rdf:Alt></dc:rights><dc:title>OpenStack Object Storage Developer Guide</dc:title><dc:creator/></rdf:Description><rdf:Description xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about=""/><rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about=""><xmp:CreatorTool>Cloud API Docs Plugin</xmp:CreatorTool></rdf:Description></rdf:RDF></x:xmpmeta></fo:declarations><fo:bookmark-tree><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="d0e1" starting-state="hide"><fo:bookmark-title>OpenStack Object Storage Developer Guide</fo:bookmark-title></fo:bookmark><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="toc...d0e1"><fo:bookmark-title>Table of Contents</fo:bookmark-title></fo:bookmark><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="d0e322" starting-state="hide"><fo:bookmark-title>1. Overview</fo:bookmark-title><fo:bookmark internal-destination="d0e339" starting-state="hide"><fo:bookmark-title>1.1. Intended Audience</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e354" starting-state="hide"><fo:bookmark-title>1.2. Document Change History</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e447" starting-state="hide"><fo:bookmark-title>1.3. Additional Resources</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="d0e460" starting-state="hide"><fo:bookmark-title>2. General API Information</fo:bookmark-title><fo:bookmark internal-destination="d0e463" starting-state="hide"><fo:bookmark-title>2.1. Authentication</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e562" starting-state="hide"><fo:bookmark-title>2.2. Overview of API Operations</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="d0e632" starting-state="hide"><fo:bookmark-title>3. API Operations for Storage Services</fo:bookmark-title><fo:bookmark internal-destination="d0e652" starting-state="hide"><fo:bookmark-title>3.1. Storage Account Services</fo:bookmark-title><fo:bookmark internal-destination="d0e662" starting-state="hide"><fo:bookmark-title>3.1.1. List Containers</fo:bookmark-title><fo:bookmark internal-destination="d0e736" starting-state="hide"><fo:bookmark-title>3.1.1.1. Serialized List Output</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e771" starting-state="hide"><fo:bookmark-title>3.1.1.2. List Large Number of Containers</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark internal-destination="d0e807" starting-state="hide"><fo:bookmark-title>3.1.2. Retrieve Account Metadata</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark internal-destination="d0e833" starting-state="hide"><fo:bookmark-title>3.2. Storage Container Services</fo:bookmark-title><fo:bookmark internal-destination="d0e843" starting-state="hide"><fo:bookmark-title>3.2.1. List Objects</fo:bookmark-title><fo:bookmark internal-destination="d0e952" starting-state="hide"><fo:bookmark-title>3.2.1.1. Serialized List Output</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e990" starting-state="hide"><fo:bookmark-title>3.2.1.2. List Large Number of Objects</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1026" starting-state="hide"><fo:bookmark-title>3.2.1.3. Pseudo-Hierarchical Folders/Directories</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark internal-destination="d0e1116" starting-state="hide"><fo:bookmark-title>3.2.2. Create Container</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1140" starting-state="hide"><fo:bookmark-title>3.2.3. Delete Container</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1169" starting-state="hide"><fo:bookmark-title>3.2.4. Retrieve Container Metadata</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark internal-destination="d0e1194" starting-state="hide"><fo:bookmark-title>3.3. Storage Object Services</fo:bookmark-title><fo:bookmark internal-destination="d0e1199" starting-state="hide"><fo:bookmark-title>3.3.1. Retrieve Object</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1270" starting-state="hide"><fo:bookmark-title>3.3.2. Create/Update Object</fo:bookmark-title><fo:bookmark internal-destination="d0e1311" starting-state="hide"><fo:bookmark-title>3.3.2.1. Chunked Transfer Encoding</fo:bookmark-title></fo:bookmark></fo:bookmark><fo:bookmark internal-destination="d0e1329" starting-state="hide"><fo:bookmark-title>3.3.3. Copy Object</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1344" starting-state="hide"><fo:bookmark-title>3.3.4. Delete Object</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1377" starting-state="hide"><fo:bookmark-title>3.3.5. Retrieve Object Metadata</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1398" starting-state="hide"><fo:bookmark-title>3.3.6. Update Object Metadata</fo:bookmark-title></fo:bookmark></fo:bookmark></fo:bookmark><fo:bookmark xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" internal-destination="d0e1440" starting-state="hide"><fo:bookmark-title>4. Troubleshooting</fo:bookmark-title><fo:bookmark internal-destination="d0e1445" starting-state="hide"><fo:bookmark-title>4.1. Using cURL</fo:bookmark-title><fo:bookmark internal-destination="d0e1487" starting-state="hide"><fo:bookmark-title>4.1.1. Authentication</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1536" starting-state="hide"><fo:bookmark-title>4.1.2. Determining Storage Usage</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1576" starting-state="hide"><fo:bookmark-title>4.1.3. Creating a Storage Container</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1610" starting-state="hide"><fo:bookmark-title>4.1.4. Uploading a Storage Object</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1656" starting-state="hide"><fo:bookmark-title>4.1.5. CDN-Enabling the Container</fo:bookmark-title></fo:bookmark><fo:bookmark internal-destination="d0e1739" starting-state="hide"><fo:bookmark-title>4.1.6. Other cURL Commands</fo:bookmark-title></fo:bookmark></fo:bookmark></fo:bookmark></fo:bookmark-tree><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="cloud-titlepage" language="en" format="i" initial-page-number="1" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="d0e1"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block break-after="page"/><fo:block font-size="14.4pt" font-weight="bold" font-family="CartoGothic Std"><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block><fo:block font-size="10pt"><fo:block> </fo:block></fo:block><fo:block font-size="10pt" space-before="0.5em">API v1 (02/10/11)</fo:block><fo:block font-size="10pt">Copyright © 2010, 2011 OpenStack, LLC All rights reserved.</fo:block><fo:block font-size="10pt"><fo:block start-indent="0.0in" end-indent="0.0in"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="center"/><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> This document is intended for software developers interested in developing applications
2
 
        using the OpenStack Object Storage Application Programming Interface (API).
3
 
      </fo:block></fo:block></fo:block><fo:block font-size="8pt" space-before="1.0em"><fo:block id="d0e28"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
4
 
              Licensed under the Apache License, Version 2.0 (the "License");
5
 
              you may not use this file except in compliance with the License.
6
 
              You may obtain a copy of the License at
7
 
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="http://www.apache.org/licenses/LICENSE-2.0"><fo:inline>http://www.apache.org/licenses/LICENSE-2.0</fo:inline></fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
8
 
              Unless required by applicable law or agreed to in writing, software
9
 
              distributed under the License is distributed on an "AS IS" BASIS,
10
 
              WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
 
              See the License for the specific language governing permissions and
12
 
              limitations under the License.
13
 
          </fo:block></fo:block></fo:block></fo:block><fo:block break-after="page"/></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" id="toc...d0e1"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="0pt" start-indent="0pt" font-size="20.736pt" font-weight="bold" color="rgb(196,0,34)" font-family="CartoGothic Std">Table of Contents</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e322">1. Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e322"><fo:page-number-citation ref-id="d0e322"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e322" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e339">1.1. Intended Audience</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e339"><fo:page-number-citation ref-id="d0e339"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e354">1.2. Document Change History</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e354"><fo:page-number-citation ref-id="d0e354"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e447">1.3. Additional Resources</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e447"><fo:page-number-citation ref-id="d0e447"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e460">2. General API Information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e460"><fo:page-number-citation ref-id="d0e460"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e460" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e463">2.1. Authentication</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e463"><fo:page-number-citation ref-id="d0e463"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e562">2.2. Overview of API Operations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e562"><fo:page-number-citation ref-id="d0e562"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e632">3. API Operations for Storage Services</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e632"><fo:page-number-citation ref-id="d0e632"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e632" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e652">3.1. Storage Account Services</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e652"><fo:page-number-citation ref-id="d0e652"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e652" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e662">3.1.1. List Containers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e662"><fo:page-number-citation ref-id="d0e662"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e807">3.1.2. Retrieve Account Metadata</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e807"><fo:page-number-citation ref-id="d0e807"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e833">3.2. Storage Container Services</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e833"><fo:page-number-citation ref-id="d0e833"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e833" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e843">3.2.1. List Objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e843"><fo:page-number-citation ref-id="d0e843"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1116">3.2.2. Create Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1116"><fo:page-number-citation ref-id="d0e1116"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1140">3.2.3. Delete Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1140"><fo:page-number-citation ref-id="d0e1140"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1169">3.2.4. Retrieve Container Metadata</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1169"><fo:page-number-citation ref-id="d0e1169"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1194">3.3. Storage Object Services</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1194"><fo:page-number-citation ref-id="d0e1194"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e1194" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1199">3.3.1. Retrieve Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1199"><fo:page-number-citation ref-id="d0e1199"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1270">3.3.2. Create/Update Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1270"><fo:page-number-citation ref-id="d0e1270"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1329">3.3.3. Copy Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1329"><fo:page-number-citation ref-id="d0e1329"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1344">3.3.4. Delete Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1344"><fo:page-number-citation ref-id="d0e1344"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1377">3.3.5. Retrieve Object Metadata</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1377"><fo:page-number-citation ref-id="d0e1377"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1398">3.3.6. Update Object Metadata</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1398"><fo:page-number-citation ref-id="d0e1398"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1440">4. Troubleshooting</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1440"><fo:page-number-citation ref-id="d0e1440"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e1440" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1445">4.1. Using cURL</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1445"><fo:page-number-citation ref-id="d0e1445"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e1.d0e1445" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1487">4.1.1. Authentication</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1487"><fo:page-number-citation ref-id="d0e1487"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1536">4.1.2. Determining Storage Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1536"><fo:page-number-citation ref-id="d0e1536"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1576">4.1.3. Creating a Storage Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1576"><fo:page-number-citation ref-id="d0e1576"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1610">4.1.4. Uploading a Storage Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1610"><fo:page-number-citation ref-id="d0e1610"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1656">4.1.5. CDN-Enabling the Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1656"><fo:page-number-citation ref-id="d0e1656"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1739">4.1.6. Other cURL Commands</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1739"><fo:page-number-citation ref-id="d0e1739"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="lot...example...d0e1"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="0pt" start-indent="0pt" font-size="20.736pt" font-weight="bold" color="rgb(196,0,34)" font-family="CartoGothic Std">List of Examples</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e508">2.1. Authentication Request </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e508"><fo:page-number-citation ref-id="d0e508"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e539">2.2. Authentication Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e539"><fo:page-number-citation ref-id="d0e539"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e657">3.1. Storage Account HTTP Request: General Structure</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e657"><fo:page-number-citation ref-id="d0e657"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e722">3.2. Containers List Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e722"><fo:page-number-citation ref-id="d0e722"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e729">3.3. Containers List Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e729"><fo:page-number-citation ref-id="d0e729"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e747">3.4. Containers Details Request: JSON</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e747"><fo:page-number-citation ref-id="d0e747"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e752">3.5. Containers Details Response: JSON</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e752"><fo:page-number-citation ref-id="d0e752"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e759">3.6. Containers Details Request: XML</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e759"><fo:page-number-citation ref-id="d0e759"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e764">3.7. Containers Details Response: XML</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e764"><fo:page-number-citation ref-id="d0e764"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e780">3.8. List Large Number of Containers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e780"><fo:page-number-citation ref-id="d0e780"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e820">3.9. Account Metadata Request </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e820"><fo:page-number-citation ref-id="d0e820"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e827">3.10. Account Metadata Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e827"><fo:page-number-citation ref-id="d0e827"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e838">3.11. Storage Container HTTP Request: General Structure</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e838"><fo:page-number-citation ref-id="d0e838"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e938">3.12. Objects List Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e938"><fo:page-number-citation ref-id="d0e938"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e945">3.13. Objects List Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e945"><fo:page-number-citation ref-id="d0e945"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e966">3.14. Objects Details Request: JSON </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e966"><fo:page-number-citation ref-id="d0e966"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e971">3.15. Objects Details Response: JSON </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e971"><fo:page-number-citation ref-id="d0e971"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e978">3.16. Objects Details Request: XML</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e978"><fo:page-number-citation ref-id="d0e978"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e983">3.17. Objects Details Request: XML </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e983"><fo:page-number-citation ref-id="d0e983"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e999">3.18. List Large Number of Objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e999"><fo:page-number-citation ref-id="d0e999"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1058">3.19. Pseudo-Hierarchical Folders/Directories</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1058"><fo:page-number-citation ref-id="d0e1058"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1125">3.20. Container Create Request </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1125"><fo:page-number-citation ref-id="d0e1125"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1135">3.21. Container Create Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1135"><fo:page-number-citation ref-id="d0e1135"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1152">3.22. Container Delete Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1152"><fo:page-number-citation ref-id="d0e1152"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1164">3.23. Container Delete Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1164"><fo:page-number-citation ref-id="d0e1164"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1176">3.24. Container Metadata Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1176"><fo:page-number-citation ref-id="d0e1176"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1189">3.25. Container Metadata Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1189"><fo:page-number-citation ref-id="d0e1189"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1256">3.26. Retrieve Object Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1256"><fo:page-number-citation ref-id="d0e1256"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1263">3.27. Retrieve Object Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1263"><fo:page-number-citation ref-id="d0e1263"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1291">3.28. Create/Update Object Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1291"><fo:page-number-citation ref-id="d0e1291"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1306">3.29. Create/Update Object Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1306"><fo:page-number-citation ref-id="d0e1306"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1322">3.30. Upload Unspecified Quanity of Content</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1322"><fo:page-number-citation ref-id="d0e1322"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1365">3.31. Object Delete Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1365"><fo:page-number-citation ref-id="d0e1365"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1372">3.32. Object Delete Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1372"><fo:page-number-citation ref-id="d0e1372"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1386">3.33. Object Metadata Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1386"><fo:page-number-citation ref-id="d0e1386"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1393">3.34. Object Metadata Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1393"><fo:page-number-citation ref-id="d0e1393"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1428">3.35. Update Object Metadata Request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1428"><fo:page-number-citation ref-id="d0e1428"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1435">3.36. Update Object Metadata Response</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1435"><fo:page-number-citation ref-id="d0e1435"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1495">4.1. cURL Authenticate</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1495"><fo:page-number-citation ref-id="d0e1495"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1550">4.2. cURL Get Storage Space</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1550"><fo:page-number-citation ref-id="d0e1550"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1584">4.3. cURL Create Storage Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1584"><fo:page-number-citation ref-id="d0e1584"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1621">4.4. cURL Upload Storage Object</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1621"><fo:page-number-citation ref-id="d0e1621"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1664">4.5. cURL CDN-Enable Container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1664"><fo:page-number-citation ref-id="d0e1664"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1715">4.6. cURL Download a File</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1715"><fo:page-number-citation ref-id="d0e1715"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="1" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="d0e322"><fo:block xmlns:d="http://docbook.org/ns/docbook" font-family="CartoGothic Std"><fo:block margin-left="0pt"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="start" start-indent="0pt" font-family="CartoGothic Std" color="rgb(196,0,34)" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">1. Overview</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">OpenStack Object Storage is an affordable, redundant, scalable, and dynamic storage
14
 
            service offering. The core storage system is designed to provide a safe, secure,
15
 
            automatically re-sizing and network accessible way to store data. You can store an
16
 
            unlimited quantity of files and each file can be as large as 5 gigabytes, plus with
17
 
            large storage support you can download and .</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">OpenStack Object Storage allows users to store and retrieve files and content via a simple
18
 
            Web Service (ReST: Representational State Transfer) interface. There are also
19
 
            language-specific APIs that utilize the ReSTful API but make it much easier for
20
 
            developers to integrate into their applications.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For more details on the OpenStack Object Storage service, please refer to <fo:basic-link external-destination="url(http://swift.openstack.org)"><fo:inline>http://swift.openstack.org</fo:inline></fo:basic-link>
21
 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> We welcome feedback, comments, and bug reports at <fo:basic-link external-destination="url(http://bugs.launchpad.net/swift)"><fo:inline>bugs.launchpad.net/swift</fo:inline></fo:basic-link>. 
22
 
    </fo:block><fo:block id="d0e339"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Intended Audience</fo:marker><fo:block font-size="20.735999999999997pt">1.1. Intended Audience</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This guide is intended to assist software developers who want to develop applications
23
 
        using the OpenStack Object Storage API. It fully documents the ReST application programming
24
 
        interface (API) that allows developers to interact with the storage components of
25
 
        the OpenStack Object Storage system. To use the information provided here, you should first have a
26
 
        general understanding of the OpenStack Object Storage service and have access to an installation of
27
 
        OpenStack Object Storage. You should also be familiar with: </fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e344"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e345"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>ReSTful web services</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e348"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>HTTP/1.1</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Rackspace also provides Rackspace-supported, language-specific APIs in several popular
28
 
                programming languages. Currently, the supported APIs are C#/.NET, Java, PHP, Python,
29
 
                and Ruby. These APIs utilize the ReST API and are provided to help developers
30
 
                rapidly integrate OpenStack Object Storage support into their applications without
31
 
                needing to write at the ReST interface. Each API includes its own documentation in
32
 
                its native format. For example, the Java API includes JavaDocs and the C#/.NET API
33
 
                includes a CHM file.</fo:block></fo:block><fo:block break-after="page"/><fo:block id="d0e354"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Document Change History</fo:marker><fo:block font-size="20.735999999999997pt">1.2. Document Change History</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This version of the Developer Guide was forked from the Rackspace Cloud Files Developer
34
 
                Guide. The most recent changes for both guides are described in the table
35
 
                below:</fo:block><fo:block xmlns:rx="http://www.renderx.com/XSL/Extensions" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" id="d0e359"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" width="100%" border-start-style="solid" border-end-style="solid" border-top-style="solid" border-bottom-style="solid" border-start-width="0.5pt" border-end-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-start-color="black" border-end-color="black" border-top-color="black" border-bottom-color="black"><fo:table-header start-indent="0pt" end-indent="0pt"><fo:table-row keep-with-next.within-column="always">
36
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block font-weight="bold">Revision Date</fo:block></fo:table-cell>
37
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" number-columns-spanned="4"><fo:block font-weight="bold">Summary of Changes</fo:block></fo:table-cell>
38
 
          </fo:table-row></fo:table-header><fo:table-body start-indent="0pt" end-indent="0pt"><fo:table-row>
39
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block>Feb. 10, 2011</fo:block></fo:table-cell>
40
 
            
41
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" number-columns-spanned="4"><fo:block>
42
 
              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e377"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e378"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
43
 
                    Revised to change first to last in the first range example for fetching a portion of an object.
44
 
                  </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
45
 
            </fo:block></fo:table-cell>
46
 
          </fo:table-row><fo:table-row>
47
 
                <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block>Jan. 25, 2011</fo:block></fo:table-cell>
48
 
              
49
 
                <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" number-columns-spanned="4"><fo:block>
50
 
                    <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e390"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e391"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
51
 
                                Revised for OpenStack Object Storage use by removing CDN references, Rackspace Cloud references, and revised account examples and URLs for generic implementations.
52
 
                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e394"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
53
 
                                It's not a changed requirement that Container and Object names are required to be UTF-8, but it's pointed out in the documentation.
54
 
                            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
55
 
                </fo:block></fo:table-cell>
56
 
            </fo:table-row><fo:table-row>
57
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block>Jan. 12, 2011</fo:block></fo:table-cell>
58
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" number-columns-spanned="4"><fo:block>
59
 
              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e406"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e407"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
60
 
                    Removed references to ACL (Access Control List).
61
 
                  </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e410"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
62
 
                    Fixed error in examples referring to X-Auth-Key where it should be X-Auth-Token.
63
 
                  </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e413"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
64
 
                        Added section numbers.
65
 
                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
66
 
            </fo:block></fo:table-cell>
67
 
          </fo:table-row><fo:table-row>
68
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block>Jan. 4, 2011</fo:block></fo:table-cell>
69
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-start-style="none" border-top-style="none" border-bottom-style="solid" border-bottom-width="0.5pt" border-bottom-color="black" number-columns-spanned="4"><fo:block>
70
 
              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e425"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e426"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
71
 
                    Expanded authentication information for UK release.
72
 
                  </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e429"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
73
 
                    Added "delimiter" as a Query Parameter and server-side object copy example.
74
 
                  </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
75
 
            </fo:block></fo:table-cell>
76
 
          </fo:table-row><fo:table-row>
77
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="center" border-start-style="none" border-top-style="none" border-end-style="solid" border-end-width="0.5pt" border-end-color="black"><fo:block>May 5, 2008</fo:block></fo:table-cell>
78
 
            <fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-start-style="none" border-top-style="none" number-columns-spanned="4"><fo:block>
79
 
                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e441"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e442"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Initial release.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
80
 
            </fo:block></fo:table-cell>
81
 
          </fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="d0e447"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Additional Resources</fo:marker><fo:block font-size="20.735999999999997pt">1.3. Additional Resources</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can download the most current version of this document from the OpenStack Docs
82
 
                website at <fo:basic-link external-destination="url(http://docs.openstack.org)"><fo:inline>
83
 
                    http://docs.openstack.org</fo:inline></fo:basic-link>. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> For more details about the Rackspace Cloud Files implementation of the OpenStack Object
84
 
        Storage service, please refer to <fo:basic-link external-destination="url(www.rackspacecloud.com/cloud_hosting_products/files)"><fo:inline>http://www.rackspacecloud.com/cloud_hosting_products/files</fo:inline></fo:basic-link>. Related documents are
85
 
        available at the same site, as are links to Rackspace's official support channels, including
86
 
        knowledge base articles, forums, phone, chat, and email. </fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="d0e460"><fo:block xmlns:d="http://docbook.org/ns/docbook" font-family="CartoGothic Std"><fo:block margin-left="0pt"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="start" start-indent="0pt" font-family="CartoGothic Std" color="rgb(196,0,34)" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">2. General API Information</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e463"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Authentication</fo:marker><fo:block font-size="20.735999999999997pt">2.1. Authentication</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Client authentication is provided via a ReST interface using the <fo:inline font-weight="bold">GET</fo:inline>
87
 
        method, with <fo:inline font-family="monospace">v1.0</fo:inline> supplied as the path. Additionally, two headers are required,
88
 
        <fo:inline font-family="monospace">X-Auth-User</fo:inline> and <fo:inline font-family="monospace">X-Auth-Key</fo:inline> with values for the username and API
89
 
        Access Key respectively.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Each ReST request against the OpenStack Object Storage system requires the inclusion of
90
 
                a specific authorization token HTTP x-header, defined as <fo:inline font-family="monospace">X-Auth-Token</fo:inline>.
91
 
                Clients obtain this token, along with the Cloud Servers API URL, by first using an
92
 
                authentication service and supplying a valid username and API access key. </fo:block><fo:block id="d0e485"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Request</fo:marker><fo:block font-size="17.28pt">Request</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
93
 
          To authenticate, you must supply your username and API access key in x-headers:
94
 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
95
 
          <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e492"><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e493"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Use your OpenStack Object Storage (Swift) username as the username for the API.
96
 
                                Place it in the <fo:inline font-family="monospace">X-Auth-User</fo:inline> x-header. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em" id="d0e499"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Obtain your API access key from authentication service you chose when
97
 
                                installing (devauth or swauth are two provided with the source code
98
 
                                but you can use your own authentication system). Place it in the
99
 
                                    <fo:inline font-family="monospace">X-Auth-User</fo:inline> x-header. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
100
 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> </fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e508"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 2.1. Authentication Request </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e511">
101
 
GET /v1.0 HTTP/1.1
102
 
Host: auth.api.yourcloud.com
103
 
X-Auth-User: jdoe
104
 
X-Auth-Key: a86850deb2742ec3cb41518e26aa2d89
105
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e513"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Response</fo:marker><fo:block font-size="17.28pt">Response</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When authentication is successful, an HTTP status 204 (No Content) is returned with the
106
 
          <fo:inline font-family="monospace">X-Storage-Url</fo:inline>, <fo:inline font-family="monospace">X-CDN-Management-Url</fo:inline>, and
107
 
          <fo:inline font-family="monospace">X-Auth-Token</fo:inline> headers. Any 2xx response is a good response. For example, a 202
108
 
          response means the request has been accepted. Also, additional <fo:inline font-family="monospace">X-</fo:inline> headers may
109
 
          be returned. These additional headers are related to other Rackspace services and can be
110
 
          ignored. An HTTP status of 401 (Unauthorized) is returned upon authentication failure. All
111
 
          subsequent container/object operations against OpenStack Object Storage should be made against the URI
112
 
          specified in <fo:inline font-family="monospace">X-Storage-Url</fo:inline> or <fo:inline font-family="monospace">X-CDN-Management-Url</fo:inline> and must
113
 
          include the <fo:inline font-family="monospace">X-Auth-Token</fo:inline> header.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e539"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 2.2. Authentication Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e542">
114
 
  HTTP/1.1 204 No Content
115
 
  Date: Mon, 12 Nov 2010 15:32:21 GMT
116
 
  Server: Apache
117
 
  X-Storage-Url: https://storage.swiftdrive.com/v1/CF_xer7_34
118
 
  X-CDN-Management-Url: https://cdn.swiftdrive.com/v1/CF_xer7_34
119
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
120
 
  Content-Length: 0
121
 
  Content-Type: text/plain; charset=UTF-8
122
 
              </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">X-Storage-Url</fo:inline> and <fo:inline font-family="monospace">X-CDN-Management-Url</fo:inline> will need to be
123
 
          parsed and used in the connection and request line of all subsequent requests against
124
 
          Cloud Files. In the example response above, users connecting to OpenStack Object Storage
125
 
          would send most container/object requests with a host header of
126
 
            <fo:inline font-family="monospace">storage.swiftdrive.com</fo:inline> and the request line's version and account as
127
 
            <fo:inline font-family="monospace">/v1/CF_xer7_34</fo:inline>. To CDN-enable Containers or adjust CDN attributes, ReST
128
 
          requests should be sent to <fo:inline font-family="monospace">cdn.swiftdrive.com</fo:inline>. Note that authentication
129
 
          tokens are valid for a 24 hour period.</fo:block></fo:block></fo:block><fo:block break-after="page"/><fo:block id="d0e562"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Overview of API Operations</fo:marker><fo:block font-size="20.735999999999997pt">2.2. Overview of API Operations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The OpenStack Object Storage API is implemented as a set of ReSTful (Representational State Transfer)
130
 
      web services. All authentication and container/object operations can be performed with
131
 
      standard HTTP calls. See the <fo:basic-link external-destination="url(http://en.wikipedia.org/wiki/Representational_State_Transfer)"><fo:inline>Wikipedia
132
 
        article</fo:inline></fo:basic-link> for more information about ReST.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following constraints apply to the ReST API's HTTP requests:</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e572"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e573"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum number of HTTP headers per request: 90</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e576"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum length of all HTTP headers: 4096 bytes</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e579"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum length per HTTP request line: 8192 bytes</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e582"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum length of HTTP request: 5 gigabytes</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e585"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum length of container name: 256 bytes</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e588"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Maximum length of object name: 1024 bytes</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Container and object names should be properly URL-encoded prior to interacting with the
133
 
                ReST interface (the language APIs handle URL encoding/decoding) and the container
134
 
                and object names must be UTF-8 encoded. The length restrictions should be checked
135
 
                against the URL encoded string.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each ReST request against the OpenStack Object Storage system requires the inclusion of a specific
136
 
        <fo:inline font-style="italic">authorization token</fo:inline> HTTP header defined as <fo:inline font-family="monospace">X-Auth-Token</fo:inline>.
137
 
      Clients obtain this token, along with the OpenStack Object Storage URIs, by first using the Authentication
138
 
      service and supplying a valid Username and API Access Key.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are actually two different sets of ReST services that make up the full OpenStack Object Storage
139
 
      product. The first ReST service identified with <fo:inline font-family="monospace">X-Storage-Url</fo:inline> is used for
140
 
      managing the data stored in the system. Example operations are creating containers and
141
 
      uploading objects. The second ReST service is for managing the CDN feature of OpenStack Object Storage and
142
 
      is identified by <fo:inline font-family="monospace">X-CDN-Management-Url</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the following sections, the purpose of each HTTP method depends upon which service the
143
 
        call is made against. For example, a <fo:inline font-weight="bold">PUT</fo:inline> request against <fo:inline font-family="monospace">X-Storage-Url</fo:inline> can be
144
 
        used to create a container or upload an object, while a <fo:inline font-weight="bold">PUT</fo:inline> request against the
145
 
          <fo:inline font-family="monospace">X-CDN-Management-Url</fo:inline> is used to CDN-enable a container.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The language-specific APIs mask this system separation from the programmer. They simply
146
 
      create a container and mark it <fo:inline font-style="italic">public</fo:inline> and it handles calling out to the
147
 
      appropriate back-end services using the appropriate ReST API.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" id="d0e628"><fo:list-block provisional-distance-between-starts="36pt + 18pt" provisional-label-separation="18pt"><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:external-graphic width="auto" height="auto" content-width="36pt" src="url(/Users/anne.gentle/src/openstack-manuals/postbex/doc/buildpdf/rc-maven-cloud-docs/target/docbkx/images/note.svg)"/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always" color="rgb(196,0,34)" font-family="CartoGothic Std">Note</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All requests to authenticate and operate against OpenStack Object Storage are performed using SSL
148
 
        over HTTP (HTTPS) on TCP port 443.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block break-after="page"/></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="d0e632"><fo:block xmlns:d="http://docbook.org/ns/docbook" font-family="CartoGothic Std"><fo:block margin-left="0pt"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="start" start-indent="0pt" font-family="CartoGothic Std" color="rgb(196,0,34)" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">3. API Operations for Storage Services</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following section describes the ReST API for interacting with the storage component
149
 
        of OpenStack Object Storage. All requests will be directed to the host and URL described in the
150
 
          <fo:inline font-family="monospace">X-Storage-Url</fo:inline> HTTP header obtained during successful authentication.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following are some pointers for the use of the storage services:</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e642"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e643"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Container names cannot exceed 256 bytes and cannot contain a '/' character</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e646"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object names cannot exceed 1024 bytes and have no character restrictions</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e649"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object and container names must be URL-encoded and UTF-8</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="d0e652"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Storage Account Services</fo:marker><fo:block font-size="20.735999999999997pt">3.1. Storage Account Services</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following operations can be performed at the account level of the URI. For
151
 
          example, the URI for the requests below will end with the OpenStack Object Storage account
152
 
          string:</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e657"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.1. Storage Account HTTP Request: General Structure</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e660">
153
 
  METHOD /v1/&lt;account&gt; HTTP/1.1
154
 
                </fo:block></fo:block></fo:block><fo:block id="d0e662"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">List Containers</fo:marker><fo:block font-size="17.28pt">3.1.1. List Containers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">GET</fo:inline> operations against the <fo:inline font-family="monospace">X-Storage-Url</fo:inline> for an account
155
 
            are performed to retrieve a list of existing storage containers ordered by name. The
156
 
            following list describes the optional query parameters that are supported with this
157
 
            request.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Query Parameters</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" id="d0e672" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e675"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">limit</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For an integer value <fo:inline><fo:inline font-style="italic">n</fo:inline></fo:inline>, limits the number of results to at most <fo:inline><fo:inline font-style="italic">n</fo:inline></fo:inline> values.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e692"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">marker</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Given a string value <fo:inline><fo:inline font-style="italic">x</fo:inline></fo:inline>, return object names greater in value than the specified
158
 
                  marker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e704"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">format</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Specify either <fo:inline font-family="monospace">json</fo:inline> or <fo:inline font-family="monospace">xml</fo:inline> to return the respective
159
 
                  serialized response.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">At this time, a <fo:inline font-family="monospace">prefix</fo:inline> query parameter is not supported at the account
160
 
            level.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e722"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.2. Containers List Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e725">
161
 
  GET /&lt;api version&gt;/&lt;account&gt; HTTP/1.1
162
 
  Host: storage.swiftdrive.com
163
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
164
 
                      </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A list of containers is returned in the response body, one container per line. A 204
165
 
            (No Content) HTTP return code will be passed back if the account has no
166
 
            containers.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e729"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.3. Containers List Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e732">
167
 
  HTTP/1.1 200 Ok
168
 
  Date: Thu, 07 Jun 2010 18:57:07 GMT
169
 
  Server: Apache
170
 
  Content-Type: text/plain; charset=UTF-8
171
 
  Content-Length: 32
172
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e734">
173
 
  images
174
 
  movies
175
 
  documents
176
 
  backups
177
 
                      </fo:block></fo:block></fo:block><fo:block id="d0e736"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.1.1.1. Serialized List Output</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If a <fo:inline font-family="monospace">format=xml</fo:inline> or <fo:inline font-family="monospace">format=json</fo:inline> argument is appended to
178
 
              the storage account URL, the service will serve extended container information
179
 
              serialized in the chosen format. The sample responses below are formatted for
180
 
              readability.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e747"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.4. Containers Details Request: JSON</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e750">
181
 
  GET /&lt;api version&gt;/&lt;account&gt;?format=json HTTP/1.1
182
 
  Host: storage.swiftdrive.com
183
 
  Content-Length: 0
184
 
  X-Storage-Token: 182f9c0af0e828cfe3281767d29d19f4
185
 
                      </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e752"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.5. Containers Details Response: JSON</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e755">
186
 
  HTTP/1.1 200 OK
187
 
  Date: Tue, 25 Nov 2008 19:39:13 GMT
188
 
  Server: Apache
189
 
  Content-Type: application/json; charset=utf-8
190
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e757">
191
 
  [
192
 
    {<fo:inline font-weight="bold" font-style="italic">"name"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"test_container_1"</fo:inline>, <fo:inline font-weight="bold" font-style="italic">"count"</fo:inline>:2, <fo:inline font-weight="bold" font-style="italic">"bytes"</fo:inline>:78},
193
 
    {<fo:inline font-weight="bold" font-style="italic">"name"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"test_container_2"</fo:inline>, <fo:inline font-weight="bold" font-style="italic">"count"</fo:inline>:1, <fo:inline font-weight="bold" font-style="italic">"bytes"</fo:inline>:17}
194
 
  ] 
195
 
                      </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e759"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.6. Containers Details Request: XML</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e762">
196
 
  GET /&lt;api version&gt;/&lt;account&gt;?format=xml HTTP/1.1
197
 
  Host: storage.swiftdrive.com
198
 
  Content-Length: 0
199
 
  X-Storage-Token: 182f9c0af0e828cfe3281767d29d19f4
200
 
                      </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e764"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.7. Containers Details Response: XML</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e767">
201
 
  HTTP/1.1 200 OK
202
 
  Date: Tue, 25 Nov 2008 19:42:35 GMT
203
 
  Server: Apache
204
 
  Content-Type: application/xml; charset=utf-8
205
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e769">
206
 
  &lt;?xml version="1.0" encoding="UTF-8"?&gt;
207
 
 
208
 
  <fo:inline font-weight="bold">&lt;account</fo:inline> <fo:inline font-weight="bold">name</fo:inline>=<fo:inline font-weight="bold">"MichaelBarton"</fo:inline><fo:inline font-weight="bold">&gt;</fo:inline>
209
 
    <fo:inline font-weight="bold">&lt;container&gt;</fo:inline>
210
 
      <fo:inline font-weight="bold">&lt;name&gt;</fo:inline>test_container_1<fo:inline font-weight="bold">&lt;/name&gt;</fo:inline>
211
 
      <fo:inline font-weight="bold">&lt;count&gt;</fo:inline>2<fo:inline font-weight="bold">&lt;/count&gt;</fo:inline>
212
 
      <fo:inline font-weight="bold">&lt;bytes&gt;</fo:inline>78<fo:inline font-weight="bold">&lt;/bytes&gt;</fo:inline>
213
 
    <fo:inline font-weight="bold">&lt;/container&gt;</fo:inline>
214
 
    <fo:inline font-weight="bold">&lt;container&gt;</fo:inline>
215
 
      <fo:inline font-weight="bold">&lt;name&gt;</fo:inline>test_container_2<fo:inline font-weight="bold">&lt;/name&gt;</fo:inline>
216
 
      <fo:inline font-weight="bold">&lt;count&gt;</fo:inline>1<fo:inline font-weight="bold">&lt;/count&gt;</fo:inline>
217
 
      <fo:inline font-weight="bold">&lt;bytes&gt;</fo:inline>17<fo:inline font-weight="bold">&lt;/bytes&gt;</fo:inline>
218
 
    <fo:inline font-weight="bold">&lt;/container&gt;</fo:inline>
219
 
  <fo:inline font-weight="bold">&lt;/account&gt;</fo:inline>
220
 
                      </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e771"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.1.1.2. List Large Number of Containers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The system will return a maximum of 10,000 container names per request. To
221
 
              retrieve subsequent container names, another request must be made with a 'marker'
222
 
              parameter. The marker indicates where the last list left off;  the system will return
223
 
              container names greater than this marker, up to 10,000 again. Note that the ‘marker’
224
 
              value should be URL-encoded prior to sending the HTTP request.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If 10,000 is larger than desired, a 'limit' parameter may be given.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the number of container names returned equals the limit given (or 10,000 if no
225
 
              limit is given), it can be assumed there are more container names to be listed. If the
226
 
              container name list is exactly divisible by the limit, the last request will simply
227
 
              have no content.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e780"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.8. List Large Number of Containers</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, let's use a listing of five container names</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e785">
228
 
  apples
229
 
  bananas
230
 
  kiwis
231
 
  oranges
232
 
  pears
233
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We'll use a limit of two to show how things work:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e789">
234
 
  GET /&lt;api version&gt;/&lt;account&gt;?limit=2
235
 
  Host: storage.swiftdrive.com
236
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
237
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e791">
238
 
  apples
239
 
  bananas
240
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Since we received two items back, we can assume there are more container names
241
 
                to list, so we make another request with a marker of the last item returned:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e795">
242
 
  GET /&lt;api version&gt;/&lt;account&gt;?limit=2&amp;marker=bananas
243
 
  Host: storage.swiftdrive.com
244
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
245
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e797">
246
 
  kiwis
247
 
  oranges
248
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Again,  two items are returned; there may be more:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e801">
249
 
  GET /&lt;api version&gt;/&lt;account&gt;?limit=2&amp;marker=oranges
250
 
  Host: storage.swiftdrive.com
251
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
252
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e803">
253
 
  pears
254
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With this one-item response we received less than the limit number of container
255
 
                names, indicating that this is the end of the list.</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e807"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Retrieve Account Metadata</fo:marker><fo:block font-size="17.28pt">3.1.2. Retrieve Account Metadata</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">HEAD</fo:inline> operations against an account are
256
 
          performed to retrieve the number of containers and the total
257
 
          bytes stored in OpenStack Object Storage for the account. This
258
 
          information is returned in two custom headers,
259
 
          <fo:inline font-family="monospace">X-Account-Container-Count</fo:inline> and
260
 
          <fo:inline font-family="monospace">X-Account-Bytes-Used</fo:inline>. Since the storage system
261
 
          is designed to store large amounts of data, care should be
262
 
          taken when representing the total bytes response as an
263
 
          integer; when possible, convert it to a 64-bit unsigned
264
 
          integer if your platform supports that primitive
265
 
          type.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e820"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.9. Account Metadata Request </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e823">
266
 
  HEAD /&lt;api version&gt;/&lt;account&gt; HTTP/1.1
267
 
  Host: storage.swiftdrive.com
268
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
269
 
                      </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The HTTP return code will be 204 (No Content) if the request succeeds. A 401
270
 
            (Unauthorized) will be returned for an invalid account or access key.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e827"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.10. Account Metadata Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e830">
271
 
  HTTP/1.1 204 No Content
272
 
  Date: Thu, 07 Jun 2010 18:57:07 GMT
273
 
  Server: Apache
274
 
  X-Account-Container-Count: 3
275
 
  X-Account-Total-Bytes-Used: 323479
276
 
                      </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-after="page"/><fo:block id="d0e833"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Storage Container Services</fo:marker><fo:block font-size="20.735999999999997pt">3.2. Storage Container Services</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section documents the ReST operations that can be performed on containers. All
277
 
          operations are valid HTTP request methods and will resemble this format:</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e838"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.11. Storage Container HTTP Request: General Structure</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e841">
278
 
  METHOD /v1/&lt;account&gt;/&lt;container&gt; HTTP/1.1
279
 
                </fo:block></fo:block></fo:block><fo:block id="d0e843"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">List Objects</fo:marker><fo:block font-size="17.28pt">3.2.1. List Objects</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">GET</fo:inline> operations against a storage container name are performed to
280
 
            retrieve a list of objects stored in the container. Additionally, there are a number of
281
 
            optional query parameters that can be used to refine the list results.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A request with no query parameters will return the full list of object names stored
282
 
            in the container, up to 10,000 names. Optionally specifying the query parameters will
283
 
            filter the full list and return a subset of objects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Query Parameters</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" id="d0e852" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e855"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">limit</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For an integer value <fo:inline><fo:inline font-style="italic">n</fo:inline></fo:inline>, limits the number of results to at most <fo:inline><fo:inline font-style="italic">n</fo:inline></fo:inline> values.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e872"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">marker</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Given a string value <fo:inline><fo:inline font-style="italic">x</fo:inline></fo:inline>, return object names greater in value than the specified
284
 
                  marker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e884"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">prefix</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For a string value <fo:inline><fo:inline font-style="italic">x</fo:inline></fo:inline>, causes the results to be limited to object names beginning with
285
 
                  the substring <fo:inline><fo:inline font-style="italic">x</fo:inline></fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e901"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">format</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Specify either <fo:inline font-family="monospace">json</fo:inline> or <fo:inline font-family="monospace">xml</fo:inline> to return the respective
286
 
                  serialized response.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e914"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">path</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For a string value <fo:inline><fo:inline font-style="italic">x</fo:inline></fo:inline>, return the object names nested in the pseudo path (assuming
287
 
                  preconditions are met - see below).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e926"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">delimiter</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For a character <fo:inline><fo:inline font-style="italic">c</fo:inline></fo:inline>, return all the object names nested in the container (without
288
 
                  the need for the directory marker objects).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e938"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.12. Objects List Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e941">
289
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;[?parm=value] HTTP/1.1
290
 
  Host: storage.swiftdrive.com
291
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
292
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A list of objects is returned in the response body, one object name per line. A 204
293
 
            (No Content) HTTP return code will be passed back if the container is empty or does not
294
 
            exist for the specified account. If an incorrect account is specified, the HTTP return
295
 
            code will be 404 (Not Found).</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e945"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.13. Objects List Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e948">
296
 
  HTTP/1.1 200 Ok
297
 
  Date: Thu, 07 Jun 2010 18:50:19 GMT
298
 
  Server: Apache
299
 
  Content-Type: text/plain; charset=UTF-8
300
 
  Content-Length: 171
301
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e950">
302
 
  kate_beckinsale.jpg
303
 
  How To Win Friends And Influence People.pdf
304
 
  moms_birthday.jpg
305
 
  poodle_strut.mov
306
 
  Disturbed - Down With The Sickness.mp3
307
 
  army_of_darkness.avi
308
 
  the_mad.avi
309
 
                    </fo:block></fo:block></fo:block><fo:block id="d0e952"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.2.1.1. Serialized List Output</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If a <fo:inline font-family="monospace">format=xml</fo:inline> or <fo:inline font-family="monospace">format=json</fo:inline> argument is appended to
310
 
            the storage account URL, the service will serve extended object information serialized
311
 
            in the chosen format. Other than the <fo:inline font-family="monospace">?format=xml|json</fo:inline> param, it will return
312
 
            the same status/errors codes. The sample responses below are formatted for
313
 
            readability.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e966"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.14. Objects Details Request: JSON </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e969">
314
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;?format=json HTTP/1.1
315
 
  Host: storage.swiftdrive.com
316
 
  Content-Length: 0
317
 
  X-Storage-Token: 182f9c0af0e828cfe3281767d29d19f4
318
 
                      </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e971"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.15. Objects Details Response: JSON </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e974">
319
 
  HTTP/1.1 200 OK
320
 
  Date: Tue, 25 Nov 2008 19:39:13 GMT
321
 
  Server: Apache
322
 
  Content-Length: 387
323
 
  Content-Type: application/json; charset=utf-8
324
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e976">
325
 
 [
326
 
   {<fo:inline font-weight="bold" font-style="italic">"name"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"test_obj_1"</fo:inline>,
327
 
    <fo:inline font-weight="bold" font-style="italic">"hash"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"4281c348eaf83e70ddce0e07221c3d28"</fo:inline>,
328
 
    <fo:inline font-weight="bold" font-style="italic">"bytes"</fo:inline>:14,
329
 
    <fo:inline font-weight="bold" font-style="italic">"content_type"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"application\/octet-stream"</fo:inline>,
330
 
    <fo:inline font-weight="bold" font-style="italic">"last_modified"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"2009-02-03T05:26:32.612278"</fo:inline>},
331
 
   {<fo:inline font-weight="bold" font-style="italic">"name"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"test_obj_2"</fo:inline>,
332
 
    <fo:inline font-weight="bold" font-style="italic">"hash"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"b039efe731ad111bc1b0ef221c3849d0"</fo:inline>,
333
 
    <fo:inline font-weight="bold" font-style="italic">"bytes"</fo:inline>:64,
334
 
    <fo:inline font-weight="bold" font-style="italic">"content_type"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"application\/octet-stream"</fo:inline>,
335
 
    <fo:inline font-weight="bold" font-style="italic">"last_modified"</fo:inline>:<fo:inline font-weight="bold" font-style="italic">"2009-02-03T05:26:32.612278"</fo:inline>},
336
 
 ]
337
 
                                        </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e978"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.16. Objects Details Request: XML</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e981">
338
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;?format=xml HTTP/1.1
339
 
  Host: storage.swiftdrive.com
340
 
  X-Storage-Token: 182f9c0af0e828cfe3281767d29d19f4
341
 
                    </fo:block></fo:block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e983"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.17. Objects Details Request: XML </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e986">
342
 
  HTTP/1.1 200 OK
343
 
  Date: Tue, 25 Nov 2008 19:42:35 GMT
344
 
  Server: Apache
345
 
  Content-Length: 643
346
 
  Content-Type: application/xml; charset=utf-8
347
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e988">
348
 
  &lt;?xml version="1.0" encoding="UTF-8"?&gt;
349
 
 
350
 
  <fo:inline font-weight="bold">&lt;container</fo:inline> <fo:inline font-weight="bold">name</fo:inline>=<fo:inline font-weight="bold">"test_container_1"</fo:inline><fo:inline font-weight="bold">&gt;</fo:inline>
351
 
    <fo:inline font-weight="bold">&lt;object&gt;</fo:inline>
352
 
      <fo:inline font-weight="bold">&lt;name&gt;</fo:inline>test_object_1<fo:inline font-weight="bold">&lt;/name&gt;</fo:inline>
353
 
      <fo:inline font-weight="bold">&lt;hash&gt;</fo:inline>4281c348eaf83e70ddce0e07221c3d28<fo:inline font-weight="bold">&lt;/hash&gt;</fo:inline>
354
 
      <fo:inline font-weight="bold">&lt;bytes&gt;</fo:inline>14<fo:inline font-weight="bold">&lt;/bytes&gt;</fo:inline>
355
 
      <fo:inline font-weight="bold">&lt;content_type&gt;</fo:inline>application/octet-stream<fo:inline font-weight="bold">&lt;/content_type&gt;</fo:inline>
356
 
      <fo:inline font-weight="bold">&lt;last_modified&gt;</fo:inline>2009-02-03T05:26:32.612278<fo:inline font-weight="bold">&lt;/last_modified&gt;</fo:inline>
357
 
    <fo:inline font-weight="bold">&lt;/object&gt;</fo:inline>
358
 
    <fo:inline font-weight="bold">&lt;object&gt;</fo:inline>
359
 
      <fo:inline font-weight="bold">&lt;name&gt;</fo:inline>test_object_2<fo:inline font-weight="bold">&lt;/name&gt;</fo:inline>
360
 
      <fo:inline font-weight="bold">&lt;hash&gt;</fo:inline>b039efe731ad111bc1b0ef221c3849d0<fo:inline font-weight="bold">&lt;/hash&gt;</fo:inline>
361
 
      <fo:inline font-weight="bold">&lt;bytes&gt;</fo:inline>64<fo:inline font-weight="bold">&lt;/bytes&gt;</fo:inline>
362
 
      <fo:inline font-weight="bold">&lt;content_type&gt;</fo:inline>application/octet-stream<fo:inline font-weight="bold">&lt;/content_type&gt;</fo:inline>
363
 
      <fo:inline font-weight="bold">&lt;last_modified&gt;</fo:inline>2009-02-03T05:26:32.612278<fo:inline font-weight="bold">&lt;/last_modified&gt;</fo:inline>
364
 
    <fo:inline font-weight="bold">&lt;/object&gt;</fo:inline>
365
 
  <fo:inline font-weight="bold">&lt;/container&gt;</fo:inline>
366
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e990"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.2.1.2. List Large Number of Objects</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The system will return a maximum of 10,000 object names per request. To retrieve
367
 
              subsequent object names, another request must be made with a 'marker' parameter. The
368
 
              marker indicates where the last list left off and the system will return object names
369
 
              greater than this marker, up to 10,000 again. Note that the ‘marker’ value should be
370
 
              URL encoded prior to sending the HTTP request.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If 10,000 is larger than desired, a 'limit' parameter may be given.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the number of object names returned equals the limit given (or 10,000 if no
371
 
              limit is given), it can be assumed there are more object names to be listed. If the
372
 
              container name list is exactly divisible by the limit, the last request will simply
373
 
              have no content.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e999"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.18. List Large Number of Objects</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For an example, let's use a listing of five object names:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1004">
374
 
  gala
375
 
  grannysmith
376
 
  honeycrisp
377
 
  jonagold
378
 
  reddelicious
379
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We'll use a limit of two to show how things work:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1008">
380
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;?limit=2
381
 
  Host: storage.swiftdrive.com
382
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
383
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1010">
384
 
  gala
385
 
  grannysmith
386
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Since we received two items back, we can assume there are more object names to
387
 
                list. So, we make another request with a marker of the last item returned:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1014">
388
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;?limit=2&amp;marker=grannysmith
389
 
  Host: storage.swiftdrive.com
390
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
391
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1016">
392
 
  honeycrisp
393
 
  jonagold
394
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Again we have two items returned; there may be more:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1020">
395
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;?limit=2&amp;marker=oranges
396
 
  Host: storage.swiftdrive.com
397
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
398
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1022">
399
 
  reddelicious
400
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now we received less than the limit number of container names, indicating that we
401
 
                have the complete list.</fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1026"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.2.1.3. Pseudo-Hierarchical Folders/Directories</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can simulate a hierarchical structure in OpenStack Object Storage by following a few
402
 
            guidelines. Object names must contain the forward slash character <fo:inline font-family="monospace">/</fo:inline> as a
403
 
            path element separator and also create <fo:inline font-style="italic">directory marker</fo:inline> objects;
404
 
            then they will be able to traverse this nested structure with the new
405
 
              <fo:inline font-style="italic">path</fo:inline> query parameter. This can best be illustrated by
406
 
            example:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" id="d0e1040"><fo:list-block provisional-distance-between-starts="36pt + 18pt" provisional-label-separation="18pt"><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:external-graphic width="auto" height="auto" content-width="36pt" src="url(/Users/anne.gentle/src/openstack-manuals/postbex/doc/buildpdf/rc-maven-cloud-docs/target/docbkx/images/note.svg)"/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always" color="rgb(196,0,34)" font-family="CartoGothic Std">Note</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For the purposes of this example, the container where the objects reside is
407
 
              called <fo:inline font-family="monospace">backups</fo:inline>. All objects in this example start with a prefix of
408
 
                <fo:inline font-family="monospace">photos</fo:inline> and should <fo:inline font-weight="bold">NOT</fo:inline> be confused
409
 
              with the container name. In the example, the full URI of the <fo:inline font-family="monospace">me.jpg</fo:inline> file
410
 
              would be
411
 
                <fo:inline font-family="monospace">https://storage.swiftdrive.com/v1/CF_xer7_343/backups/photos/me.jpg</fo:inline>
412
 
            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1058"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.19. Pseudo-Hierarchical Folders/Directories</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the example, the following <fo:inline font-style="italic">real</fo:inline> objects are uploaded to
413
 
                the storage system with names representing their full filesystem path:</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1066">
414
 
  photos/animals/dogs/poodle.jpg
415
 
  photos/animals/dogs/terrier.jpg
416
 
  photos/animals/cats/persian.jpg
417
 
  photos/animals/cats/siamese.jpg
418
 
  photos/plants/fern.jpg
419
 
  photos/plants/rose.jpg
420
 
  photos/me.jpg
421
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To take advantage of this feature, the <fo:inline font-style="italic">directory marker</fo:inline>
422
 
                objects must also be created to represent the appropriate directories. The following
423
 
                additional objects need to be created. A good convention would be to create these as
424
 
                zero- or one-byte files with a Content-Type of
425
 
                <fo:inline font-family="monospace">application/directory</fo:inline>.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1076">
426
 
  photos/animals/dogs
427
 
  photos/animals/cats
428
 
  photos/animals
429
 
  photos/plants
430
 
  photos
431
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now issuing a <fo:inline font-weight="bold">GET</fo:inline> request against the container name coupled with
432
 
                the <fo:inline font-family="monospace">path</fo:inline> query parameter of the directory to list can traverse these
433
 
                  <fo:inline font-style="italic">directories</fo:inline>. Only the request line and results are depicted
434
 
                below excluding other request/response headers.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1089">
435
 
  GET /v1/AccountString/backups?path=photos HTTP/1.1
436
 
  Host: storage.swiftdrive.com
437
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
438
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1091">
439
 
  photos/animals
440
 
  photos/cats
441
 
  photos/me.jpg
442
 
                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To traverse down into the <fo:inline font-family="monospace">animals</fo:inline> directory, specify that
443
 
                path.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1098">
444
 
  GET /v1/AccountString/backups?path=photos/animals
445
 
  Host: storage.swiftdrive.com
446
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
447
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1100">
448
 
  photos/animals/dogs
449
 
  photos/animals/cats
450
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By combining this <fo:inline font-family="monospace">path</fo:inline> query parameter with the <fo:inline font-family="monospace">format</fo:inline>
451
 
              query parameter, users will be able to easily distinguish between virtual
452
 
              folders/directories by Content-Type and build interfaces that allow traversal of the
453
 
              pseudo-nested structure.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can also use a delimiter parameter to represent a nested directory
454
 
              hierarchy without the need for the directory marker objects. You can use any single
455
 
              character as a delimiter. The listings can return virtual directories - they are
456
 
              virtual in that they don't actually represent real objects. like the directory
457
 
              markers, though, they will have a content-type of application/directory and be in a
458
 
              subdir section of json and xml results.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you have the following objects—photos/photo1, photos/photo2,
459
 
              movieobject, videos/movieobj4—in a container, your delimiter parameter query using slash (/) would
460
 
              give you photos, movieobject,
461
 
              videos.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1114">
462
 
GET /v1/acct/container?delimiter=/
463
 
Host: storage.swiftdrive.com
464
 
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
465
 
              </fo:block></fo:block></fo:block><fo:block id="d0e1116"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Create Container</fo:marker><fo:block font-size="17.28pt">3.2.2. Create Container</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">PUT</fo:inline> operations against a storage container are used to create that
466
 
            container.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Containers are storage compartments for your data. The URL encoded name must be less
467
 
            than 256 bytes and cannot contain a forward slash '/' character.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1125"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.20. Container Create Request </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1128">
468
 
  PUT /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt; HTTP/1.1
469
 
  Host: storage.swiftdrive.com
470
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
471
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No content is returned. A status code of 201 (Created) indicates that the container
472
 
            was created as requested. Container <fo:inline font-weight="bold">PUT</fo:inline> requests are idempotent and a code
473
 
            of 202 (Accepted) is returned when the container already existed.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1135"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.21. Container Create Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1138">
474
 
  HTTP/1.1 201 Created
475
 
  Date: Thu, 07 Jun 2010 18:50:19 GMT
476
 
  Server: Apache
477
 
  Content-Type: text/plain; charset=UTF-8
478
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1140"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Delete Container</fo:marker><fo:block font-size="17.28pt">3.2.3. Delete Container</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">DELETE</fo:inline> operations against a storage container are used to permanently
479
 
            remove that container. The container must be empty before it can be deleted.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-family="monospace">HEAD</fo:inline> request against the container can be used to determine if it
480
 
            contains any objects.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1152"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.22. Container Delete Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1155">
481
 
  DELETE /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt; HTTP/1.1
482
 
  Host: storage.swiftdrive.com
483
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
484
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
485
 
            <fo:inline font-style="italic">'Response '</fo:inline>
486
 
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No content is returned. A status code of 204 (No Content) indicates success, 404
487
 
            (Not Found) is returned if the requested container was not found, and a 409 (Conflict)
488
 
            if the container is not empty. No response body will be generated.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1164"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.23. Container Delete Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1167">
489
 
  HTTP/1.1 204 No Content
490
 
  Date: Thu, 07 Jun 2010 18:57:07 GMT
491
 
  Server: Apache
492
 
  Content-Length: 0
493
 
  Content-Type: text/plain; charset=UTF-8
494
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1169"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Retrieve Container Metadata</fo:marker><fo:block font-size="17.28pt">3.2.4. Retrieve Container Metadata</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">HEAD</fo:inline> operations against a storage
495
 
          container are used to determine the number of objects, and
496
 
          the total bytes of all objects stored in the
497
 
          container. Since the storage system is designed to store
498
 
          large amounts of data, care should be taken when
499
 
          representing the total bytes response as an integer; when
500
 
          possible, convert it to a 64-bit unsigned integer if your
501
 
          platform supports that primitive type.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1176"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.24. Container Metadata Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1179">
502
 
  HEAD /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt; HTTP/1.1
503
 
  Host: storage.swiftdrive.com
504
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
505
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The HTTP return code will be 204 (No Content) if the container exists, and 404 (Not
506
 
            Found) if it does not. The object count and utilization are returned in the
507
 
              <fo:inline font-family="monospace">X-Container-Object-Count</fo:inline> and <fo:inline font-family="monospace">X-Container-Bytes-Used</fo:inline> headers
508
 
            respectively.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1189"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.25. Container Metadata Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1192">
509
 
  HTTP/1.1 204 No Content
510
 
  Date: Wed, 11 Jul 2010 19:37:41 GMT
511
 
  Content-type: text/html
512
 
  X-Container-Object-Count: 7
513
 
  X-Container-Bytes-Used: 413
514
 
                    </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1194"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Storage Object Services</fo:marker><fo:block font-size="20.735999999999997pt">3.3. Storage Object Services</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An object represents the data and any metadata for the files stored in the
515
 
          system. Through the ReST interface, metadata for an object can be included by adding
516
 
          custom HTTP headers to the request and the data payload as the request body. Objects
517
 
          cannot exceed 5GB and must have names that do not exceed 1024 bytes after URL
518
 
          encoding.</fo:block><fo:block id="d0e1199"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Retrieve Object</fo:marker><fo:block font-size="17.28pt">3.3.1. Retrieve Object</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">GET</fo:inline> operations against an object are used to retrieve the object's
519
 
            data.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that you can perform conditional <fo:inline font-weight="bold">GET</fo:inline> requests by using certain
520
 
            HTTP headers as documented in RFC 2616. OpenStack Object Storage supports the following
521
 
            headers:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">RFC 2616: <fo:basic-link external-destination="url(http://www.ietf.org/rfc/rfc2616.txt)"><fo:inline>http://www.ietf.org/rfc/rfc2616.txt</fo:inline></fo:basic-link>
522
 
          </fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1216"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1217"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If-Match</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1220"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If-None-Match</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1223"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If-Modified-Since</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1226"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If-Unmodified-Since</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is also possible to fetch a portion of data using the HTTP <fo:inline font-family="monospace">Range</fo:inline>
523
 
            header. At this time, OpenStack Object Storage does not support the full specification for
524
 
              <fo:inline font-family="monospace">Range</fo:inline> but basic support is provided. OpenStack Object Storage only allows a single
525
 
            range that includes OFFSET and/or LENGTH. We support a sub-set of <fo:inline font-family="monospace">Range</fo:inline> and
526
 
            do not adhere to the full RFC-2616 specification. We support specifying OFFSET-LENGTH
527
 
            where either OFFSET or LENGTH can be optional (not both at the same time). The following
528
 
            are supported forms of the header:</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1240"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1241"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">Range: bytes=-5</fo:inline> - last five bytes of the object</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1246"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">Range: bytes=10-15</fo:inline> - the five bytes after a 10-byte offset</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1251"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">Range: bytes=32-</fo:inline> - all data after the first 32 bytes of the
529
 
                object</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1256"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.26. Retrieve Object Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1259">
530
 
  GET /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
531
 
  Host: storage.swiftdrive.com
532
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
533
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The object's data is returned in the response body. Object metadata is returned as
534
 
            HTTP headers. A status of 200 (Ok) indicates success; status 404 (Not Found) is returned
535
 
            if no such object exists.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1263"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.27. Retrieve Object Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1266">
536
 
  HTTP/1.1 200 Ok
537
 
  Date: Wed, 11 Jul 2010 19:37:41 GMT
538
 
  Server: Apache
539
 
  Last-Modified: Fri, 12 Jun 2010 13:40:18 GMT
540
 
  ETag: b0dffe8254d152d8fd28f3c5e0404a10
541
 
  Content-type: text/html
542
 
  Content-Length: 512000
543
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1268">
544
 
  [ ... ]
545
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1270"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Create/Update Object</fo:marker><fo:block font-size="17.28pt">3.3.2. Create/Update Object</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">PUT</fo:inline> operations are used to write, or overwrite, an object's metadata
546
 
            and content.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can ensure end-to-end data integrity by including an MD5 checksum of your
547
 
            object's data in the ETag header. You are not required to include the ETag header, but
548
 
            it is recommended to ensure that the storage system successfully stored your object's
549
 
            content.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The HTTP response will include the MD5 checksum of the data written to the storage
550
 
            system. If you do not send the ETag in the request, you should compare the value
551
 
            returned with your content's MD5 locally to perform the end-to-end data validation on
552
 
            the client side.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Objects can be assigned custom metadata by including additional HTTP headers on the
553
 
            <fo:inline font-weight="bold">PUT</fo:inline> request.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The object can be created with custom metadata via HTTP headers identified with the
554
 
              <fo:inline font-family="monospace">X-Object-Meta-</fo:inline> prefix.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1291"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.28. Create/Update Object Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1294">
555
 
  PUT /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
556
 
  Host: storage.swiftdrive.com
557
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
558
 
  ETag: 8a964ee2a5e88be344f36c22562a6486
559
 
  Content-Length: 512000
560
 
  X-Object-Meta-PIN: 1234
561
 
                    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1296">
562
 
  [ ... ]
563
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No response body is returned. A status code of 201 (Created) indicates a successful
564
 
            write; status 412 (Length Required) denotes a missing <fo:inline font-family="monospace">Content-Length</fo:inline> or
565
 
              <fo:inline font-family="monospace">Content-Type</fo:inline> header in the request. If the MD5 checksum of the data
566
 
            written to the storage system does NOT match the (optionally) supplied ETag value, a 422
567
 
            (Unprocessable Entity) response is returned.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1306"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.29. Create/Update Object Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1309">
568
 
  HTTP/1.1 201 Created
569
 
  Date: Thu, 07 Jun 2010 18:57:07 GMT
570
 
  Server: Apache
571
 
  ETag: d9f5eb4bba4e2f2f046e54611bc8196b
572
 
  Content-Length: 0
573
 
  Content-Type: text/plain; charset=UTF-8
574
 
                    </fo:block></fo:block></fo:block><fo:block id="d0e1311"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:block font-size="14.399999999999999pt">3.3.2.1. Chunked Transfer Encoding</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Users can upload data without needing to know in advance the amount of data to be
575
 
              uploaded. Users can do this by specifying an HTTP header of <fo:inline font-family="monospace">Transfer-Encoding:
576
 
              chunked</fo:inline> and not using a <fo:inline font-family="monospace">Content-Length</fo:inline> header. A good use of this
577
 
              feature would be doing a DB dump, piping the output through gzip, then piping the data
578
 
              directly into OpenStack Object Storage without having to buffer the data to disk to compute the file
579
 
              size. If users attempt to upload more that 5GB with this method, the server will close
580
 
              the TCP/IP connection after 5GB and purge the customer data from the system. Users must
581
 
              take responsibility for ensuring the data they transfer will be less than 5GB or for
582
 
              splitting it into 5GB chunks, each in its own storage object.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1322"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.30. Upload Unspecified Quanity of Content</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1325">
583
 
  PUT /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
584
 
  Host: storage.swiftdrive.com
585
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
586
 
  Transfer-Encoding: chunked
587
 
  X-Object-Meta-PIN: 1234
588
 
                  </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1327">
589
 
  19
590
 
  A bunch of data broken up
591
 
  D
592
 
   into chunks.
593
 
  0
594
 
                  </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1329"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Copy Object</fo:marker><fo:block font-size="17.28pt">3.3.3. Copy Object</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Suppose you upload a file with the wrong object name or content type, or you
595
 
              needed to move some objects to another container. Without a server-side copy feature,
596
 
              you would need to repeat uploading the same content and then delete the existing
597
 
              object. With server-side object copy, you can save the step of re-uploading the
598
 
              content and thus also save the associated bandwidth charges, if any were to apply. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are two ways to copy an existing object to another object in OpenStack Object Storage.
599
 
              One way is to do a PUT to the new object (the target) location, but add the
600
 
              “X-Copy-From” header to designate the source of the data. The header value should be
601
 
              the container and object name of the source object in the form of “/container/object”.
602
 
              Also, the X-Copy-From PUT requests require a Content-Length header, even if it is zero
603
 
              (0).</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1336">PUT /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;destobject&gt; HTTP/1.1
604
 
Host: &lt;storage URL&gt;
605
 
X-Auth-Token: &lt;some-auth-token&gt;
606
 
X-Copy-From: /&lt;container&gt;/&lt;sourceobject&gt;
607
 
Content-Length: 0                    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second way to do an object copy is similar. Do a COPY to the existing object,
608
 
              and include the “Destination” header to specify the target of the copy. The header
609
 
              value is the container and new object name in the form of “/container/object”.
610
 
              <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" background-color="#E0E0E0" id="d0e1340">COPY /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;sourceobject&gt; HTTP/1.1
611
 
Host: &lt;storage URL&gt;
612
 
X-Auth-Token: &lt;some-auth-token&gt;
613
 
Destination: /&lt;container&gt;/&lt;destobject&gt;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With both of these methods, the destination container must exist before
614
 
              attempting the copy. If you were wanting to perform a move of the objects rather than
615
 
              a copy, you would need to send a DELETE request to the old object. A move simply
616
 
              becomes a COPY + DELETE. All metadata is preserved during the object copy. Note that
617
 
              you can set metadata on the request to copy the object (either the PUT or the COPY)
618
 
              and the metadata will overwrite any conflicting keys on the target (new) object. One
619
 
              interesting use case is to copy an object to itself and set the content type to a new
620
 
              value. This is the only way to change the content type of an existing
621
 
              object.</fo:block></fo:block><fo:block id="d0e1344"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Delete Object</fo:marker><fo:block font-size="17.28pt">3.3.4. Delete Object</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">DELETE</fo:inline> operations on an object are used to permanently remove that
622
 
            object from the storage system (metadata and data).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Deleting an object is processed immediately at the time of the request. Any
623
 
            subsequent <fo:inline font-weight="bold">GET</fo:inline>, <fo:inline font-family="monospace">HEAD</fo:inline>, <fo:inline font-weight="bold">POST</fo:inline>, or
624
 
            <fo:inline font-weight="bold">DELETE</fo:inline> operations will return a 404 (Not Found) error.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1365"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.31. Object Delete Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1368">
625
 
  DELETE /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
626
 
  Host: storage.swiftdrive.com
627
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
628
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No response body is returned. A status code of 204 (No Content) indicates success,
629
 
            status 404 (Not Found) is returned when the object does not exist.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1372"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.32. Object Delete Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1375">
630
 
  HTTP/1.1 204 No Content
631
 
  Date: Thu, 07 Jun 2010 20:59:39 GMT
632
 
  Server: Apache
633
 
  Content-Type: text/plain; charset=UTF-8
634
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1377"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Retrieve Object Metadata</fo:marker><fo:block font-size="17.28pt">3.3.5. Retrieve Object Metadata</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">HEAD</fo:inline> operations on an object are used to retrieve object metadata and
635
 
            other standard HTTP headers.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The only required header to be sent in the request is the authorization
636
 
            token.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1386"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.33. Object Metadata Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1389">
637
 
  HEAD /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
638
 
  Host: storage.swiftdrive.com
639
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
640
 
                    </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No response body is returned. Metadata is returned as HTTP headers. A status code of
641
 
            204 (No Content) indicates success; status 404 (Not Found) is returned when the object
642
 
            does not exist.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1393"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.34. Object Metadata Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1396">
643
 
  HTTP/1.1 204 No Content
644
 
  Date: Thu, 07 Jun 2010 20:59:39 GMT
645
 
  Server: Apache
646
 
  Last-Modified: Fri, 12 Jun 2010 13:40:18 GMT
647
 
  ETag: 8a964ee2a5e88be344f36c22562a6486
648
 
  Content-Length: 512000
649
 
  Content-Type: text/plain; charset=UTF-8
650
 
  X-Object-Meta-Meat: Bacon
651
 
  X-Object-Meta-Fruit: Bacon
652
 
  X-Object-Meta-Veggie: Bacon
653
 
  X-Object-Meta-Dairy: Bacon
654
 
                    </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1398"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Update Object Metadata</fo:marker><fo:block font-size="17.28pt">3.3.6. Update Object Metadata</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">POST</fo:inline> operations against an object name are used to set and overwrite
655
 
            arbitrary key/value metadata. You cannot use the <fo:inline font-weight="bold">POST</fo:inline> operation to change
656
 
            any of the object's other headers such as <fo:inline font-family="monospace">Content-Type</fo:inline>, <fo:inline font-family="monospace">ETag</fo:inline>,
657
 
            etc. It is not used to upload storage objects (see <fo:inline font-weight="bold">PUT</fo:inline>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Key names must be prefixed with <fo:inline font-family="monospace">X-Object-Meta-</fo:inline>. A <fo:inline font-weight="bold">POST</fo:inline>
658
 
            request will delete all existing metadata added with a previous
659
 
            <fo:inline font-family="monospace">PUT/POST</fo:inline>.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1428"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.35. Update Object Metadata Request</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1431">
660
 
  POST /&lt;api version&gt;/&lt;account&gt;/&lt;container&gt;/&lt;object&gt; HTTP/1.1
661
 
  Host: storage.swiftdrive.com
662
 
  X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
663
 
  X-Object-Meta-Fruit: Apple
664
 
  X-Object-Meta-Veggie: Carrot
665
 
                      </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> No response body is returned. A status code of 202 (Accepted) indicates success;
666
 
            status 404 (Not Found) is returned when the requested object does not exist. </fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1435"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 3.36. Update Object Metadata Response</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1438">
667
 
  HTTP/1.1 202 Accepted
668
 
  Date: Thu, 07 Jun 2010 20:59:39 GMT
669
 
  Server: Apache
670
 
  Content-Length: 0
671
 
  Content-Type: text/plain; charset=UTF-8
672
 
                    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block>OpenStack Object Storage Developer Guide</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Feb. 10, 2011</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block>API v1</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="CartoGothic Std" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="d0e1440"><fo:block xmlns:d="http://docbook.org/ns/docbook" font-family="CartoGothic Std"><fo:block margin-left="0pt"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="start" start-indent="0pt" font-family="CartoGothic Std" color="rgb(196,0,34)" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">4. Troubleshooting</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section introduces a command-line utility and demonstrates interacting with the ReST
673
 
      interfaces through that utility.</fo:block><fo:block id="d0e1445"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Using cURL</fo:marker><fo:block font-size="20.735999999999997pt">4.1. Using cURL</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">cURL is a command-line tool which is available on most UNIX®-like environments and Mac
674
 
        OS X® and can be downloaded for Windows®. For more information on cURL, visit <fo:basic-link external-destination="url(http://curl.haxx.se/)"><fo:inline>http://curl.haxx.se/</fo:inline></fo:basic-link>. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">cURL allows you to transmit and receive HTTP requests and responses from the
675
 
        command-line or from within a shell script. This makes it possible to work with the ReST API
676
 
        directly without using one of the client APIs. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following cURL command-line options will be used</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">cURL Command-Line Options</fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" id="d0e1457" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1460"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">-X METHOD</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Specify the HTTP method to request (<fo:inline font-family="monospace">HEAD</fo:inline>, <fo:inline font-weight="bold">GET</fo:inline>,
677
 
              etc.)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1473"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">-D</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Dump HTTP response headers to stdout.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1480"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">-H HEADER</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Specify an HTTP header in the request.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="d0e1487"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Authentication</fo:marker><fo:block font-size="17.28pt">4.1.1. Authentication</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In order to use the ReST API, you will first need to obtain a authorization token,
678
 
          which will need to be passed in for each request using the <fo:inline font-family="monospace">X-Auth-Token</fo:inline>
679
 
          header. The following example demonstrates how to use cURL to obtain the authorization
680
 
          token and the URL of the storage system.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1495"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.1. cURL Authenticate</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1498">
681
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">-D</fo:inline> - \
682
 
        <fo:inline font-family="monospace">-H "X-Auth-Token: a86850deb2742ec3cb41518e26aa2d89"</fo:inline> \
683
 
        <fo:inline font-family="monospace">-H "X-Auth-User: jdoe"</fo:inline> \
684
 
        <fo:inline font-family="monospace">https://auth.api.yourcloud.com/v1.0</fo:inline>
685
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1515">
686
 
   <fo:inline font-family="monospace">HTTP/1.1 204 No Content
687
 
   Date: Thu, 09 Jul 2009 15:31:39 GMT
688
 
   Server: Apache/2.2.3
689
 
   X-Storage-Url: https://storage.swiftdrive.com/v1/CF_xer7_343
690
 
   X-CDN-Management-Url: https://cdn.swiftdrive.com/v1/CF_xer7_343
691
 
   X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae
692
 
   Content-Length: 0
693
 
   Connection: close
694
 
   Content-Type: application/octet-stream
695
 
                      </fo:inline></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The storage URL, CDN management URL, and authentication token are returned in the
696
 
          headers of the response. After authentication, you can use cURL to perform
697
 
            <fo:inline font-family="monospace">HEAD</fo:inline>, <fo:inline font-weight="bold">GET</fo:inline>, <fo:inline font-weight="bold">DELETE</fo:inline>, <fo:inline font-weight="bold">POST</fo:inline> and <fo:inline font-weight="bold">PUT</fo:inline> requests on the storage and CDN
698
 
          services.</fo:block></fo:block><fo:block id="d0e1536"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Determining Storage Usage</fo:marker><fo:block font-size="17.28pt">4.1.2. Determining Storage Usage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-family="monospace">HEAD</fo:inline> request can be sent to the storage service to determine how much
699
 
          data you have stored in the system and the number of containers you are using. Use the
700
 
            <fo:inline font-family="monospace">-X</fo:inline> switch to specify the correct HTTP method and the <fo:inline font-family="monospace">-D</fo:inline> to
701
 
          dump the HTTP response headers to terminal output (stdout).</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1550"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.2. cURL Get Storage Space</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1553">
702
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">–X HEAD</fo:inline> <fo:inline font-family="monospace">-D</fo:inline> - \
703
 
        <fo:inline font-family="monospace">-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae"</fo:inline> \
704
 
        <fo:inline font-family="monospace">https://storage.swiftdrive.com/v1/CF_xer7_343</fo:inline>
705
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1570">
706
 
   <fo:inline font-family="monospace">HTTP/1.1 204 No Content
707
 
   Date: Thu, 09 Jul 2009 15:38:14 GMT
708
 
   Server: Apache
709
 
   X-Account-Container-Count: 22
710
 
   X-Account-Bytes-Used: 9891628380
711
 
   Content-Type: text/plain
712
 
                      </fo:inline></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The HTTP request must include a header to specify the authentication token. The HTTP
713
 
          headers in the response indicate the number of containers in this storage account and the
714
 
          total bytes stored for the entire account.</fo:block></fo:block><fo:block id="d0e1576"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Creating a Storage Container</fo:marker><fo:block font-size="17.28pt">4.1.3. Creating a Storage Container</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Before uploading any data to OpenStack Object Storage, you must create a storage container. You do
715
 
          this with a <fo:inline font-weight="bold">PUT</fo:inline> request; cURL can be used for that, too.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1584"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.3. cURL Create Storage Container</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1587">
716
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">–X PUT</fo:inline> <fo:inline font-family="monospace">-D</fo:inline> - \
717
 
        <fo:inline font-family="monospace">-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae"</fo:inline> \
718
 
        <fo:inline font-family="monospace">https://storage.swiftdrive.com/v1/CF_xer7_343/images</fo:inline>
719
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1604">
720
 
   <fo:inline font-family="monospace">HTTP/1.1 201 Created
721
 
   Date: Thu, 09 Jul 2009 17:03:36 GMT
722
 
   Server: Apache
723
 
   Content-Length: 0
724
 
   Content-Type: text/plain
725
 
   </fo:inline></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returning an HTTP status code of 201 (Created) indicates that the container was
726
 
          successfully created.</fo:block></fo:block><fo:block id="d0e1610"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Uploading a Storage Object</fo:marker><fo:block font-size="17.28pt">4.1.4. Uploading a Storage Object</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After creating a container, you can upload a local file. For this example, let's
727
 
          upload a screenshot image. The <fo:inline font-family="monospace">-T</fo:inline> switch specifies the full path to the local
728
 
          file to upload. Please note that if you intend to distribute this object via the CDN you
729
 
          MUST make sure that the object's <fo:inline font-family="monospace">Content-Type</fo:inline> is set correctly. This is the
730
 
          mechanism by which a user's web browser knows how to display the file or launch a helper
731
 
          application to view the file.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1621"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.4. cURL Upload Storage Object</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1624">
732
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">–X PUT</fo:inline> <fo:inline font-family="monospace">-T screenies/wow1.jpg</fo:inline><fo:inline font-family="monospace">-D</fo:inline> - \
733
 
     <fo:inline font-family="monospace">-H "ETag: 805120ec285a7ed28f74024422fe3594"</fo:inline> \
734
 
     <fo:inline font-family="monospace">-H "Content-Type: image/jpeg"</fo:inline> \
735
 
     <fo:inline font-family="monospace">-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae"</fo:inline> \
736
 
     <fo:inline font-family="monospace">-H "X-Object-Meta-Screenie: Mel visits Outland"</fo:inline> \
737
 
     <fo:inline font-family="monospace">https://storage.swiftdrive.com/v1/CF_xer7_343/images/wow1.jpg</fo:inline>
738
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1652">
739
 
   <fo:inline font-family="monospace">HTTP/1.1 201 Created
740
 
   Date: Thu, 09 Jul 2009 17:03:36 GMT
741
 
   Server: Apache
742
 
   Content-Length: 0
743
 
   Etag: 805120ec285a7ed28f74024422fe3594 
744
 
   Content-Type: text/plain
745
 
   </fo:inline></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1656"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">CDN-Enabling the Container</fo:marker><fo:block font-size="17.28pt">4.1.5. CDN-Enabling the Container</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After creating a container and storing a file in it, you can choose to share the file.
746
 
          Since the data in OpenStack Object Storage is all private, you can share your screenshot via the CDN.
747
 
          To CDN-enable a container, issue a <fo:inline font-weight="bold">PUT</fo:inline> request against the CDN management service. The
748
 
          default TTL is 24 hours and supports a minimum of 1 hour (3600 seconds) and a maximum of 3
749
 
          days (259200 seconds). Note that the target URL specifies the CDN system.</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1664"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.5. cURL CDN-Enable Container</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1667">
750
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">–X PUT</fo:inline> <fo:inline font-family="monospace">-D</fo:inline> - \
751
 
        <fo:inline font-family="monospace">-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae"</fo:inline> \
752
 
        <fo:inline font-family="monospace">-H "X-TTL: 259200"</fo:inline> \
753
 
        <fo:inline font-family="monospace">https://cdn.swiftdrive.com/v1/CF_xer7_343/images</fo:inline>
754
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1687">
755
 
   <fo:inline font-family="monospace">HTTP/1.1 202 Accepted
756
 
   Date: Thu, 06 Aug 2009 01:34:13 GMT
757
 
   Server: Apache
758
 
   X-CDN-URI: http://c0010171.cdn.swiftfiles.swiftcloud.com
759
 
   Content-Length: 0
760
 
   Connection: close
761
 
   Content-Type: text/plain; charset=UTF-8
762
 
                      </fo:inline></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When the container is CDN-enabled, the service returns its public URI in the
763
 
            <fo:inline font-family="monospace">X-CDN-URI</fo:inline> header of the response. Now you can combine this URI with the
764
 
          object name to access the file via the CDN.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can verify the CDN's cache settings that you specified with your TTL value by
765
 
          sending a <fo:inline font-weight="bold">GET</fo:inline> request to the object's CDN URL and viewing the response
766
 
          headers. The TTL value you specify translates to the <fo:inline font-family="monospace">Expires</fo:inline> and
767
 
            <fo:inline font-family="monospace">Cache-Control</fo:inline> headers of the CDN's cached Object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The cURL command below issues a <fo:inline font-weight="bold">GET</fo:inline> request which downloads the entire
768
 
          file but writes it to <fo:inline font-family="monospace">/dev/null</fo:inline>, a data sink that won't actually save the
769
 
          content to your local drive (This is only valid on UNIX-like systems).</fo:block><fo:block><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always" id="d0e1715"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" color="rgb(176,0,14)" font-family="CartoGothic Std" keep-with-next.within-column="always">Example 4.6. cURL Download a File</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1718">
770
 
   <fo:inline font-weight="bold">curl</fo:inline> <fo:inline font-family="monospace">–s</fo:inline> <fo:inline font-family="monospace">-D</fo:inline> - \
771
 
     <fo:inline font-family="monospace">http://c0010171.cdn.swiftfiles.swiftcloud.com/wow1.jpg</fo:inline> \
772
 
     <fo:inline font-family="monospace">-O /dev/null</fo:inline>
773
 
                      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" font-size="inherit" hyphenation-character="\" background-color="#E0E0E0" id="d0e1735">
774
 
   <fo:inline font-family="monospace">HTTP/1.1 200 OK
775
 
   Date: Thu, 06 Aug 2009 01:40:12 GMT
776
 
   Server: Apache
777
 
   Expires: Fri, 07 Aug 2009 01:40:12 GMT
778
 
   Last-Modified: Thu, 09 Jul 2009 17:14:46 GMT
779
 
   Cache-Control: max-age=86400, public
780
 
   ETag: b20237bff6828976d2eb348e1ca8adae
781
 
   Content-Length: 1255764
782
 
   Content-Type: image/jpeg
783
 
   Connection: keep-alive
784
 
   </fo:inline></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1739"><fo:block xmlns:d="http://docbook.org/ns/docbook"><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="CartoGothic Std"><fo:block keep-with-next.within-column="always"><fo:block font-family="CartoGothic Std" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt" color="rgb(196,0,34)"><fo:marker marker-class-name="section.head.marker">Other cURL Commands</fo:marker><fo:block font-size="17.28pt">4.1.6. Other cURL Commands</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can issue any of the ReST methods defined for OpenStack Object Storage with the cURL utility.
785
 
          For example, you can use cURL to send <fo:inline font-weight="bold">POST</fo:inline> and <fo:inline font-weight="bold">DELETE</fo:inline> requests even though we haven't
786
 
          provided specific examples.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It should be noted that generally each time <fo:inline font-family="monospace">curl</fo:inline> is invoked to perform an
787
 
          operation, a separate TCP/IP and SSL connection is created and thrown away. The language
788
 
          APIs. however. are designed to re-use these connections between operations and therefore
789
 
          provide much better performance. It is recommended that you use one of the supported
790
 
          language APIs in your production applications and limit <fo:inline font-family="monospace">curl</fo:inline> to
791
 
          quick-and-easy testing/troubleshooting.</fo:block></fo:block></fo:block></fo:flow></fo:page-sequence></fo:root>
 
 
b'\\ No newline at end of file'