€cdocutils.nodes
document
q)q}q(U	nametypesq}q(X   list containersqNX%   return a formatted list of containersqNX   setupqNX   delete containerq	NX   access log deliveryq
NX   create containerqNX   return a list of containersqNX   get containerqNX#   create or update container metadataqNX&   controlling a large list of containersqNX   syncing containersqNX   container quotasqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hUlist-containersqhU%return-a-formatted-list-of-containersqhUsetupqh	Udelete-containerqh
Uaccess-log-deliveryqhUcreate-containerq hUreturn-a-list-of-containersq!hUget-containerq"hU#create-or-update-container-metadataq#hU&controlling-a-large-list-of-containersq$hUsyncing-containersq%hUcontainer-quotasq&uUchildrenq']q((cdocutils.nodes
section
q))q*}q+(U	rawsourceq,U Uparentq-hUsourceq.XZ   /Users/jamie/projects/php/php-opencloud/doc/services/object-store/Container.md.storage.rstq/Utagnameq0Usectionq1U
attributesq2}q3(Udupnamesq4]Uclassesq5]Ubackrefsq6]Uidsq7]q8haUnamesq9]q:hauUlineq;KUdocumentq<hh']q=(cdocutils.nodes
title
q>)q?}q@(h,X   SetupqAh-h*h.h/h0UtitleqBh2}qC(h4]h5]h6]h7]h9]uh;Kh<hh']qDcdocutils.nodes
Text
qEX   SetupqF…qG}qH(h,hAh-h?ubaubcdocutils.nodes
literal_block
qI)qJ}qK(h,XÜ  use OpenCloud\Rackspace;

// Create a client object to communicate with various Rackspace Cloud services.
$client = new Rackspace(RACKSPACE_US, array(
    'username' => 'Replace this with your Rackspace Cloud user name',
    'apiKey' => 'Replace this with your Rackspace Cloud API key'
));

// Create a service object to use the object store service. The sample code
// creates the object store in the 'DFW' region.
$service = $client->objectStoreService('cloudFiles', 'DFW');h-h*h.h/h0Uliteral_blockqLh2}qM(U	xml:spaceqNUpreserveqOh7]h6]h4]h5]qP(UcodeqQX   phpqReh9]uh;Kh<hh']qScdocutils.nodes
inline
qT)qU}qV(h,XÜ  use OpenCloud\Rackspace;

// Create a client object to communicate with various Rackspace Cloud services.
$client = new Rackspace(RACKSPACE_US, array(
    'username' => 'Replace this with your Rackspace Cloud user name',
    'apiKey' => 'Replace this with your Rackspace Cloud API key'
));

// Create a service object to use the object store service. The sample code
// creates the object store in the 'DFW' region.
$service = $client->objectStoreService('cloudFiles', 'DFW');h2}qW(h4]h5]qXUotherqYah6]h7]h9]uh-hJh']qZhEXÜ  use OpenCloud\Rackspace;

// Create a client object to communicate with various Rackspace Cloud services.
$client = new Rackspace(RACKSPACE_US, array(
    'username' => 'Replace this with your Rackspace Cloud user name',
    'apiKey' => 'Replace this with your Rackspace Cloud API key'
));

// Create a service object to use the object store service. The sample code
// creates the object store in the 'DFW' region.
$service = $client->objectStoreService('cloudFiles', 'DFW');q[…q\}q](h,U h-hUubah0Uinlineq^ubaubeubh))q_}q`(h,U h-hh.h/h0h1h2}qa(h4]h5]h6]h7]qbh ah9]qchauh;Kh<hh']qd(h>)qe}qf(h,X   Create containerqgh-h_h.h/h0hBh2}qh(h4]h5]h6]h7]h9]uh;Kh<hh']qihEX   Create containerqj…qk}ql(h,hgh-heubaubcdocutils.nodes
paragraph
qm)qn}qo(h,X<   To create a new container, you just need to define its name:qph-h_h.h/h0U	paragraphqqh2}qr(h4]h5]h6]h7]h9]uh;Kh<hh']qshEX<   To create a new container, you just need to define its name:qt…qu}qv(h,hph-hnubaubhI)qw}qx(h,X?   $container = $service->createContainer('my_amazing_container');h-h_h.h/h0hLh2}qy(hNhOh7]h6]h4]h5]qz(hQX   phpq{eh9]uh;Kh<hh']q|hT)q}}q~(h,X?   $container = $service->createContainer('my_amazing_container');h2}q(h4]h5]q€Uotherqah6]h7]h9]uh-hwh']q‚hEX?   $container = $service->createContainer('my_amazing_container');qƒ…q„}q…(h,U h-h}ubah0h^ubaubhm)q†}q‡(h,Xx   If the response returned is ``FALSE``, there was an API error - most
likely due to the fact you have a naming collision.h-h_h.h/h0hqh2}qˆ(h4]h5]h6]h7]h9]uh;Kh<hh']q‰(hEX   If the response returned is qŠ…q‹}qŒ(h,X   If the response returned is h-h†ubcdocutils.nodes
literal
q)qŽ}q(h,X	   ``FALSE``h2}q(h4]h5]h6]h7]h9]uh-h†h']q‘hEX   FALSEq’…q“}q”(h,U h-hŽubah0Uliteralq•ubhEXS   , there was an API error - most
likely due to the fact you have a naming collision.q–…q—}q˜(h,XS   , there was an API error - most
likely due to the fact you have a naming collision.h-h†ubeubhm)q™}qš(h,Xp   Container names must be valid strings between 0 and 256 characters.
Forward slashes are not currently permitted.q›h-h_h.h/h0hqh2}qœ(h4]h5]h6]h7]h9]uh;Kh<hh']qhEXp   Container names must be valid strings between 0 and 256 characters.
Forward slashes are not currently permitted.qž…qŸ}q (h,h›h-h™ubaubcdocutils.nodes
block_quote
q¡)q¢}q£(h,U h-h_h.h/h0Ublock_quoteq¤h2}q¥(h4]h5]h6]h7]h9]uh;Nh<hh']q¦hm)q§}q¨(h,Xë   **Note:** when working with names that contain non-standard
alphanumerical characters (such as spaces or non-English
characters), you must ensure they are encoded with
```urlencode`` <http://php.net/urlencode>`__ before passing them inh-h¢h.h/h0hqh2}q©(h4]h5]h6]h7]h9]uh;K!h']qª(cdocutils.nodes
strong
q«)q¬}q­(h,X	   **Note:**h2}q®(h4]h5]h6]h7]h9]uh-h§h']q¯hEX   Note:q°…q±}q²(h,U h-h¬ubah0Ustrongq³ubhEXŸ    when working with names that contain non-standard
alphanumerical characters (such as spaces or non-English
characters), you must ensure they are encoded with
q´…qµ}q¶(h,XŸ    when working with names that contain non-standard
alphanumerical characters (such as spaces or non-English
characters), you must ensure they are encoded with
h-h§ubh)q·}q¸(h,X   ```urlencode``h2}q¹(h4]h5]h6]h7]h9]uh-h§h']qºhEX
   `urlencodeq»…q¼}q½(h,U h-h·ubah0h•ubhEX    <q¾…q¿}qÀ(h,X    <h-h§ubcdocutils.nodes
reference
qÁ)qÂ}qÃ(h,X   http://php.net/urlencodeqÄh2}qÅ(UrefurihÄh7]h6]h4]h5]h9]uh-h§h']qÆhEX   http://php.net/urlencodeqÇ…qÈ}qÉ(h,U h-hÂubah0U	referenceqÊubhEX   >`__ before passing them inqË…qÌ}qÍ(h,X   >`__ before passing them inh-h§ubeubaubeubh))qÎ}qÏ(h,U h-hh.h/h0h1h2}qÐ(h4]h5]h6]h7]qÑhah9]qÒhauh;K'h<hh']qÓ(h>)qÔ}qÕ(h,X   List containersqÖh-hÎh.h/h0hBh2}q×(h4]h5]h6]h7]h9]uh;K'h<hh']qØhEX   List containersqÙ…qÚ}qÛ(h,hÖh-hÔubaubh))qÜ}qÝ(h,U h-hÎh.h/h0h1h2}qÞ(h4]h5]h6]h7]qßh!ah9]qàhauh;K*h<hh']qá(h>)qâ}qã(h,X   Return a list of containersqäh-hÜh.h/h0hBh2}qå(h4]h5]h6]h7]h9]uh;K*h<hh']qæhEX   Return a list of containersqç…qè}qé(h,häh-hâubaubhI)qê}që(h,X  $containerList = $service->listContainers();

while ($container = $containerList->next()) {
    // Do stuff; some examples below
    printf("Container name: %s\n", $container->name);
    printf("Number of objects within container: %d\n", $container->getObjectCount());
}h-hÜh.h/h0hLh2}qì(hNhOh7]h6]h4]h5]qí(hQX   phpqîeh9]uh;K5h<hh']qïhT)qð}qñ(h,X  $containerList = $service->listContainers();

while ($container = $containerList->next()) {
    // Do stuff; some examples below
    printf("Container name: %s\n", $container->name);
    printf("Number of objects within container: %d\n", $container->getObjectCount());
}h2}qò(h4]h5]qóUotherqôah6]h7]h9]uh-hêh']qõhEX  $containerList = $service->listContainers();

while ($container = $containerList->next()) {
    // Do stuff; some examples below
    printf("Container name: %s\n", $container->name);
    printf("Number of objects within container: %d\n", $container->getObjectCount());
}qö…q÷}qø(h,U h-hðubah0h^ubaubhm)qù}qú(h,X¶   Container names are sorted based on a binary comparison, a single
built-in collating sequence that compares string data using SQLite's
memcmp() function, regardless of text encoding.qûh-hÜh.h/h0hqh2}qü(h4]h5]h6]h7]h9]uh;K6h<hh']qýhEX¶   Container names are sorted based on a binary comparison, a single
built-in collating sequence that compares string data using SQLite's
memcmp() function, regardless of text encoding.qþ…qÿ}r   (h,hûh-hùubaubhm)r  }r  (h,Xe   The list is limited to 10,000 containers at a time. See 1.3 for ways to
limit and navigate this list.r  h-hÜh.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;K:h<hh']r  hEXe   The list is limited to 10,000 containers at a time. See 1.3 for ways to
limit and navigate this list.r  …r  }r  (h,j  h-j  ubaubeubh))r	  }r
  (h,U h-hÎh.h/h0h1h2}r  (h4]h5]h6]h7]r  hah9]r  hauh;K>h<hh']r  (h>)r  }r  (h,X%   Return a formatted list of containersr  h-j	  h.h/h0hBh2}r  (h4]h5]h6]h7]h9]uh;K>h<hh']r  hEX%   Return a formatted list of containersr  …r  }r  (h,j  h-j  ubaubhm)r  }r  (h,X:   Currently, the SDK only supports JSON-formatted responses.r  h-j	  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;K@h<hh']r  hEX:   Currently, the SDK only supports JSON-formatted responses.r  …r  }r  (h,j  h-j  ubaubeubh))r  }r   (h,U h-hÎh.h/h0h1h2}r!  (h4]h5]h6]h7]r"  h$ah9]r#  hauh;KCh<hh']r$  (h>)r%  }r&  (h,X&   Controlling a large list of containersr'  h-j  h.h/h0hBh2}r(  (h4]h5]h6]h7]h9]uh;KCh<hh']r)  hEX&   Controlling a large list of containersr*  …r+  }r,  (h,j'  h-j%  ubaubhm)r-  }r.  (h,Xw  You may limit and control this list of results by using the ``marker``
and ``end_marker`` parameters. The former parameter (``marker``) tells
the API where to begin the list, and the latter (``end_marker``) tells
it where to end the list. You may use either of them independently or
together. You may also use the ``limit`` parameter to fix the number of
containers returned.h-j  h.h/h0hqh2}r/  (h4]h5]h6]h7]h9]uh;KEh<hh']r0  (hEX<   You may limit and control this list of results by using the r1  …r2  }r3  (h,X<   You may limit and control this list of results by using the h-j-  ubh)r4  }r5  (h,X
   ``marker``h2}r6  (h4]h5]h6]h7]h9]uh-j-  h']r7  hEX   markerr8  …r9  }r:  (h,U h-j4  ubah0h•ubhEX   
and r;  …r<  }r=  (h,X   
and h-j-  ubh)r>  }r?  (h,X   ``end_marker``h2}r@  (h4]h5]h6]h7]h9]uh-j-  h']rA  hEX
   end_markerrB  …rC  }rD  (h,U h-j>  ubah0h•ubhEX#    parameters. The former parameter (rE  …rF  }rG  (h,X#    parameters. The former parameter (h-j-  ubh)rH  }rI  (h,X
   ``marker``h2}rJ  (h4]h5]h6]h7]h9]uh-j-  h']rK  hEX   markerrL  …rM  }rN  (h,U h-jH  ubah0h•ubhEX9   ) tells
the API where to begin the list, and the latter (rO  …rP  }rQ  (h,X9   ) tells
the API where to begin the list, and the latter (h-j-  ubh)rR  }rS  (h,X   ``end_marker``h2}rT  (h4]h5]h6]h7]h9]uh-j-  h']rU  hEX
   end_markerrV  …rW  }rX  (h,U h-jR  ubah0h•ubhEXm   ) tells
it where to end the list. You may use either of them independently or
together. You may also use the rY  …rZ  }r[  (h,Xm   ) tells
it where to end the list. You may use either of them independently or
together. You may also use the h-j-  ubh)r\  }r]  (h,X	   ``limit``h2}r^  (h4]h5]h6]h7]h9]uh-j-  h']r_  hEX   limitr`  …ra  }rb  (h,U h-j\  ubah0h•ubhEX4    parameter to fix the number of
containers returned.rc  …rd  }re  (h,X4    parameter to fix the number of
containers returned.h-j-  ubeubhm)rf  }rg  (h,X5   To list a set of containers between two fixed points:rh  h-j  h.h/h0hqh2}ri  (h4]h5]h6]h7]h9]uh;KLh<hh']rj  hEX5   To list a set of containers between two fixed points:rk  …rl  }rm  (h,jh  h-jf  ubaubhI)rn  }ro  (h,X~   $someContainers = $service->listContainers(array(
    'marker'     => 'container_55',
    'end_marker' => 'container_2001'
));h-j  h.h/h0hLh2}rp  (hNhOh7]h6]h4]h5]rq  (hQX   phprr  eh9]uh;KTh<hh']rs  hT)rt  }ru  (h,X~   $someContainers = $service->listContainers(array(
    'marker'     => 'container_55',
    'end_marker' => 'container_2001'
));h2}rv  (h4]h5]rw  Uotherrx  ah6]h7]h9]uh-jn  h']ry  hEX~   $someContainers = $service->listContainers(array(
    'marker'     => 'container_55',
    'end_marker' => 'container_2001'
));rz  …r{  }r|  (h,U h-jt  ubah0h^ubaubhm)r}  }r~  (h,X   Or to return a limited set:r  h-j  h.h/h0hqh2}r€  (h4]h5]h6]h7]h9]uh;KUh<hh']r  hEX   Or to return a limited set:r‚  …rƒ  }r„  (h,j  h-j}  ubaubhI)r…  }r†  (h,XB   $someContainers = $service->listContainers(array('limit' => 560));h-j  h.h/h0hLh2}r‡  (hNhOh7]h6]h4]h5]rˆ  (hQX   phpr‰  eh9]uh;KZh<hh']rŠ  hT)r‹  }rŒ  (h,XB   $someContainers = $service->listContainers(array('limit' => 560));h2}r  (h4]h5]rŽ  Uotherr  ah6]h7]h9]uh-j…  h']r  hEXB   $someContainers = $service->listContainers(array('limit' => 560));r‘  …r’  }r“  (h,U h-j‹  ubah0h^ubaubeubeubh))r”  }r•  (h,U h-hh.h/h0h1h2}r–  (h4]h5]h6]h7]r—  h"ah9]r˜  hauh;K\h<hh']r™  (h>)rš  }r›  (h,X   Get containerrœ  h-j”  h.h/h0hBh2}r  (h4]h5]h6]h7]h9]uh;K\h<hh']rž  hEX   Get containerrŸ  …r   }r¡  (h,jœ  h-jš  ubaubhm)r¢  }r£  (h,XI   To retrieve a certain container, either to access its object or
metadata:r¤  h-j”  h.h/h0hqh2}r¥  (h4]h5]h6]h7]h9]uh;K^h<hh']r¦  hEXI   To retrieve a certain container, either to access its object or
metadata:r§  …r¨  }r©  (h,j¤  h-j¢  ubaubhI)rª  }r«  (h,X{   $container = $service->getContainer('container_name');

echo $container->getObjectCount();
echo $container->getBytesUsed();h-j”  h.h/h0hLh2}r¬  (hNhOh7]h6]h4]h5]r­  (hQX   phpr®  eh9]uh;Kgh<hh']r¯  hT)r°  }r±  (h,X{   $container = $service->getContainer('container_name');

echo $container->getObjectCount();
echo $container->getBytesUsed();h2}r²  (h4]h5]r³  Uotherr´  ah6]h7]h9]uh-jª  h']rµ  hEX{   $container = $service->getContainer('container_name');

echo $container->getObjectCount();
echo $container->getBytesUsed();r¶  …r·  }r¸  (h,U h-j°  ubah0h^ubaubeubh))r¹  }rº  (h,U h-hh.h/h0h1h2}r»  (h4]h5]h6]h7]r¼  hah9]r½  h	auh;Kih<hh']r¾  (h>)r¿  }rÀ  (h,X   Delete containerrÁ  h-j¹  h.h/h0hBh2}rÂ  (h4]h5]h6]h7]h9]uh;Kih<hh']rÃ  hEX   Delete containerrÄ  …rÅ  }rÆ  (h,jÁ  h-j¿  ubaubhm)rÇ  }rÈ  (h,X   Deleting a container is easy:rÉ  h-j¹  h.h/h0hqh2}rÊ  (h4]h5]h6]h7]h9]uh;Kkh<hh']rË  hEX   Deleting a container is easy:rÌ  …rÍ  }rÎ  (h,jÉ  h-jÇ  ubaubhI)rÏ  }rÐ  (h,X   $container->delete();h-j¹  h.h/h0hLh2}rÑ  (hNhOh7]h6]h4]h5]rÒ  (hQX   phprÓ  eh9]uh;Kph<hh']rÔ  hT)rÕ  }rÖ  (h,X   $container->delete();h2}r×  (h4]h5]rØ  UotherrÙ  ah6]h7]h9]uh-jÏ  h']rÚ  hEX   $container->delete();rÛ  …rÜ  }rÝ  (h,U h-jÕ  ubah0h^ubaubhm)rÞ  }rß  (h,X®   Please bear mind that you must delete all objects inside a container
before deleting it. This is done for you if you set the
``$deleteObjects`` parameter to ``TRUE`` like so:h-j¹  h.h/h0hqh2}rà  (h4]h5]h6]h7]h9]uh;Kqh<hh']rá  (hEX}   Please bear mind that you must delete all objects inside a container
before deleting it. This is done for you if you set the
râ  …rã  }rä  (h,X}   Please bear mind that you must delete all objects inside a container
before deleting it. This is done for you if you set the
h-jÞ  ubh)rå  }ræ  (h,X   ``$deleteObjects``h2}rç  (h4]h5]h6]h7]h9]uh-jÞ  h']rè  hEX   $deleteObjectsré  …rê  }rë  (h,U h-jå  ubah0h•ubhEX    parameter to rì  …rí  }rî  (h,X    parameter to h-jÞ  ubh)rï  }rð  (h,X   ``TRUE``h2}rñ  (h4]h5]h6]h7]h9]uh-jÞ  h']rò  hEX   TRUEró  …rô  }rõ  (h,U h-jï  ubah0h•ubhEX	    like so:rö  …r÷  }rø  (h,X	    like so:h-jÞ  ubeubhI)rù  }rú  (h,X   $container->delete(TRUE);h-j¹  h.h/h0hLh2}rû  (hNhOh7]h6]h4]h5]rü  (hQX   phprý  eh9]uh;Kxh<hh']rþ  hT)rÿ  }r   (h,X   $container->delete(TRUE);h2}r  (h4]h5]r  Uotherr  ah6]h7]h9]uh-jù  h']r  hEX   $container->delete(TRUE);r  …r  }r  (h,U h-jÿ  ubah0h^ubaubhm)r  }r	  (h,X   You can also do it manually:r
  h-j¹  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;Kyh<hh']r  hEX   You can also do it manually:r  …r  }r  (h,j
  h-j  ubaubhI)r  }r  (h,X5   $container->deleteAllObjects();
$container->delete();h-j¹  h.h/h0hLh2}r  (hNhOh7]h6]h4]h5]r  (hQX   phpr  eh9]uh;Kh<hh']r  hT)r  }r  (h,X5   $container->deleteAllObjects();
$container->delete();h2}r  (h4]h5]r  Uotherr  ah6]h7]h9]uh-j  h']r  hEX5   $container->deleteAllObjects();
$container->delete();r  …r  }r  (h,U h-j  ubah0h^ubaubeubh))r  }r   (h,U h-hh.h/h0h1h2}r!  (h4]h5]h6]h7]r"  h#ah9]r#  hauh;Kh<hh']r$  (h>)r%  }r&  (h,X#   Create or update container metadatar'  h-j  h.h/h0hBh2}r(  (h4]h5]h6]h7]h9]uh;Kh<hh']r)  hEX#   Create or update container metadatar*  …r+  }r,  (h,j'  h-j%  ubaubhI)r-  }r.  (h,X_   $container->saveMetadata(array(
    'Author' => 'Virginia Woolf',
    'Published' => '1931'
));h-j  h.h/h0hLh2}r/  (hNhOh7]h6]h4]h5]r0  (hQX   phpr1  eh9]uh;K‰h<hh']r2  hT)r3  }r4  (h,X_   $container->saveMetadata(array(
    'Author' => 'Virginia Woolf',
    'Published' => '1931'
));h2}r5  (h4]h5]r6  Uotherr7  ah6]h7]h9]uh-j-  h']r8  hEX_   $container->saveMetadata(array(
    'Author' => 'Virginia Woolf',
    'Published' => '1931'
));r9  …r:  }r;  (h,U h-j3  ubah0h^ubaubhm)r<  }r=  (h,X¨   Please bear in mind that this action will set metadata to this array -
overriding existing values and wiping those left out. To *append* values
to the current metadata:h-j  h.h/h0hqh2}r>  (h4]h5]h6]h7]h9]uh;KŠh<hh']r?  (hEX€   Please bear in mind that this action will set metadata to this array -
overriding existing values and wiping those left out. To r@  …rA  }rB  (h,X€   Please bear in mind that this action will set metadata to this array -
overriding existing values and wiping those left out. To h-j<  ubcdocutils.nodes
emphasis
rC  )rD  }rE  (h,X   *append*h2}rF  (h4]h5]h6]h7]h9]uh-j<  h']rG  hEX   appendrH  …rI  }rJ  (h,U h-jD  ubah0UemphasisrK  ubhEX     values
to the current metadata:rL  …rM  }rN  (h,X     values
to the current metadata:h-j<  ubeubhI)rO  }rP  (h,XP   $metadata = $container->appendToMetadata(array(
    'Publisher' => 'Hogarth'
));h-j  h.h/h0hLh2}rQ  (hNhOh7]h6]h4]h5]rR  (hQX   phprS  eh9]uh;K“h<hh']rT  hT)rU  }rV  (h,XP   $metadata = $container->appendToMetadata(array(
    'Publisher' => 'Hogarth'
));h2}rW  (h4]h5]rX  UotherrY  ah6]h7]h9]uh-jO  h']rZ  hEXP   $metadata = $container->appendToMetadata(array(
    'Publisher' => 'Hogarth'
));r[  …r\  }r]  (h,U h-jU  ubah0h^ubaubhm)r^  }r_  (h,XÍ   If you only want to set the metadata to the local object, and not
immediately retain these values on the API, you can use a standard
setter method - which can contribute to eventual actions like an update:r`  h-j  h.h/h0hqh2}ra  (h4]h5]h6]h7]h9]uh;K”h<hh']rb  hEXÍ   If you only want to set the metadata to the local object, and not
immediately retain these values on the API, you can use a standard
setter method - which can contribute to eventual actions like an update:rc  …rd  }re  (h,j`  h-j^  ubaubhI)rf  }rg  (h,X/   $container->setMetadata(array('Foo' => 'Bar'));h-j  h.h/h0hLh2}rh  (hNhOh7]h6]h4]h5]ri  (hQX   phprj  eh9]uh;K›h<hh']rk  hT)rl  }rm  (h,X/   $container->setMetadata(array('Foo' => 'Bar'));h2}rn  (h4]h5]ro  Uotherrp  ah6]h7]h9]uh-jf  h']rq  hEX/   $container->setMetadata(array('Foo' => 'Bar'));rr  …rs  }rt  (h,U h-jl  ubah0h^ubaubeubh))ru  }rv  (h,U h-hh.h/h0h1h2}rw  (h4]h5]h6]h7]rx  h&ah9]ry  hauh;Kh<hh']rz  (h>)r{  }r|  (h,X   Container quotasr}  h-ju  h.h/h0hBh2}r~  (h4]h5]h6]h7]h9]uh;Kh<hh']r  hEX   Container quotasr€  …r  }r‚  (h,j}  h-j{  ubaubhm)rƒ  }r„  (h,X*  The container\_quotas middleware implements simple quotas that can be
imposed on Cloud Files containers by a user. Setting container quotas
can be useful for limiting the scope of containers that are delegated to
non-admin users, exposed to formpost uploads, or just as a self-imposed
sanity check.h-ju  h.h/h0hqh2}r…  (h4]h5]h6]h7]h9]uh;KŸh<hh']r†  hEX)  The container_quotas middleware implements simple quotas that can be
imposed on Cloud Files containers by a user. Setting container quotas
can be useful for limiting the scope of containers that are delegated to
non-admin users, exposed to formpost uploads, or just as a self-imposed
sanity check.r‡  …rˆ  }r‰  (h,X*  The container\_quotas middleware implements simple quotas that can be
imposed on Cloud Files containers by a user. Setting container quotas
can be useful for limiting the scope of containers that are delegated to
non-admin users, exposed to formpost uploads, or just as a self-imposed
sanity check.h-jƒ  ubaubhm)rŠ  }r‹  (h,X   To set quotas for a container:rŒ  h-ju  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;K¥h<hh']rŽ  hEX   To set quotas for a container:r  …r  }r‘  (h,jŒ  h-jŠ  ubaubhI)r’  }r“  (h,Xq   use OpenCloud\Common\Constants\Size;

$container->setCountQuota(1000);
$container->setBytesQuota(2.5 * Size::GB);h-ju  h.h/h0hLh2}r”  (hNhOh7]h6]h4]h5]r•  (hQX   phpr–  eh9]uh;K­h<hh']r—  hT)r˜  }r™  (h,Xq   use OpenCloud\Common\Constants\Size;

$container->setCountQuota(1000);
$container->setBytesQuota(2.5 * Size::GB);h2}rš  (h4]h5]r›  Uotherrœ  ah6]h7]h9]uh-j’  h']r  hEXq   use OpenCloud\Common\Constants\Size;

$container->setCountQuota(1000);
$container->setBytesQuota(2.5 * Size::GB);rž  …rŸ  }r   (h,U h-j˜  ubah0h^ubaubhm)r¡  }r¢  (h,X   And to retrieve them:r£  h-ju  h.h/h0hqh2}r¤  (h4]h5]h6]h7]h9]uh;K®h<hh']r¥  hEX   And to retrieve them:r¦  …r§  }r¨  (h,j£  h-j¡  ubaubhI)r©  }rª  (h,XC   echo $container->getCountQuota();
echo $container->getBytesQuota();h-ju  h.h/h0hLh2}r«  (hNhOh7]h6]h4]h5]r¬  (hQX   phpr­  eh9]uh;K´h<hh']r®  hT)r¯  }r°  (h,XC   echo $container->getCountQuota();
echo $container->getBytesQuota();h2}r±  (h4]h5]r²  Uotherr³  ah6]h7]h9]uh-j©  h']r´  hEXC   echo $container->getCountQuota();
echo $container->getBytesQuota();rµ  …r¶  }r·  (h,U h-j¯  ubah0h^ubaubeubh))r¸  }r¹  (h,U h-hh.h/h0h1h2}rº  (h4]h5]h6]h7]r»  hah9]r¼  h
auh;K¶h<hh']r½  (h>)r¾  }r¿  (h,X   Access log deliveryrÀ  h-j¸  h.h/h0hBh2}rÁ  (h4]h5]h6]h7]h9]uh;K¶h<hh']rÂ  hEX   Access log deliveryrÃ  …rÄ  }rÅ  (h,jÀ  h-j¾  ubaubhm)rÆ  }rÇ  (h,X  To view your object access, turn on Access Log Delivery. You can use
access logs to analyze the number of people who access your objects,
where they come from, how many requests for each object you receive, and
time-based usage patterns (such as monthly or seasonal usage).rÈ  h-j¸  h.h/h0hqh2}rÉ  (h4]h5]h6]h7]h9]uh;K¸h<hh']rÊ  hEX  To view your object access, turn on Access Log Delivery. You can use
access logs to analyze the number of people who access your objects,
where they come from, how many requests for each object you receive, and
time-based usage patterns (such as monthly or seasonal usage).rË  …rÌ  }rÍ  (h,jÈ  h-jÆ  ubaubhI)rÎ  }rÏ  (h,X:   $container->enableLogging();
$container->disableLogging();h-j¸  h.h/h0hLh2}rÐ  (hNhOh7]h6]h4]h5]rÑ  (hQX   phprÒ  eh9]uh;KÁh<hh']rÓ  hT)rÔ  }rÕ  (h,X:   $container->enableLogging();
$container->disableLogging();h2}rÖ  (h4]h5]r×  UotherrØ  ah6]h7]h9]uh-jÎ  h']rÙ  hEX:   $container->enableLogging();
$container->disableLogging();rÚ  …rÛ  }rÜ  (h,U h-jÔ  ubah0h^ubaubeubh))rÝ  }rÞ  (h,U h-hh.h/h0h1h2}rß  (h4]h5]h6]h7]rà  h%ah9]rá  hauh;KÃh<hh']râ  (h>)rã  }rä  (h,X   Syncing containersrå  h-jÝ  h.h/h0hBh2}ræ  (h4]h5]h6]h7]h9]uh;KÃh<hh']rç  hEX   Syncing containersrè  …ré  }rê  (h,jå  h-jã  ubaubhm)rë  }rì  (h,XÃ   You can synchronize local directories with your CloudFiles/Swift
containers very easily. When you do this, the container will mirror
exactly the nested file structure within your local directory:rí  h-jÝ  h.h/h0hqh2}rî  (h4]h5]h6]h7]h9]uh;KÅh<hh']rï  hEXÃ   You can synchronize local directories with your CloudFiles/Swift
containers very easily. When you do this, the container will mirror
exactly the nested file structure within your local directory:rð  …rñ  }rò  (h,jí  h-jë  ubaubhI)ró  }rô  (h,X0   $container->uploadDirectory('/home/Jamie/blog');h-jÝ  h.h/h0hLh2}rõ  (hNhOh7]h6]h4]h5]rö  (hQX   phpr÷  eh9]uh;KÌh<hh']rø  hT)rù  }rú  (h,X0   $container->uploadDirectory('/home/Jamie/blog');h2}rû  (h4]h5]rü  Uotherrý  ah6]h7]h9]uh-jó  h']rþ  hEX0   $container->uploadDirectory('/home/Jamie/blog');rÿ  …r   }r  (h,U h-jù  ubah0h^ubaubhm)r  }r  (h,X0   There are four scenarios you should be aware of:r  h-jÝ  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;KÍh<hh']r  hEX0   There are four scenarios you should be aware of:r  …r  }r	  (h,j  h-j  ubaubcdocutils.nodes
table
r
  )r  }r  (h,U h-jÝ  h.h/h0Utabler  h2}r  (h4]h5]h6]h7]h9]uh;Nh<hh']r  cdocutils.nodes
tgroup
r  )r  }r  (h,U h2}r  (h7]h6]h4]h5]h9]UcolsKuh-j  h']r  (cdocutils.nodes
colspec
r  )r  }r  (h,U h2}r  (h7]h6]h4]h5]h9]UcolwidthKuh-j  h']h0Ucolspecr  ubj  )r  }r  (h,U h2}r  (h7]h6]h4]h5]h9]UcolwidthKuh-j  h']h0j  ubj  )r  }r  (h,U h2}r  (h7]h6]h4]h5]h9]UcolwidthKuh-j  h']h0j  ubj  )r   }r!  (h,U h2}r"  (h7]h6]h4]h5]h9]UcolwidthK uh-j  h']h0j  ubcdocutils.nodes
thead
r#  )r$  }r%  (h,U h2}r&  (h4]h5]h6]h7]h9]uh-j  h']r'  cdocutils.nodes
row
r(  )r)  }r*  (h,U h2}r+  (h4]h5]h6]h7]h9]uh-j$  h']r,  (cdocutils.nodes
entry
r-  )r.  }r/  (h,U h2}r0  (h4]h5]h6]h7]h9]uh-j)  h']r1  hm)r2  }r3  (h,X   Localr4  h-j.  h.h/h0hqh2}r5  (h4]h5]h6]h7]h9]uh;KÐh']r6  hEX   Localr7  …r8  }r9  (h,j4  h-j2  ubaubah0Uentryr:  ubj-  )r;  }r<  (h,U h2}r=  (h4]h5]h6]h7]h9]uh-j)  h']r>  hm)r?  }r@  (h,X   RemoterA  h-j;  h.h/h0hqh2}rB  (h4]h5]h6]h7]h9]uh;KÐh']rC  hEX   RemoterD  …rE  }rF  (h,jA  h-j?  ubaubah0j:  ubj-  )rG  }rH  (h,U h2}rI  (h4]h5]h6]h7]h9]uh-j)  h']rJ  hm)rK  }rL  (h,X
   ComparisonrM  h-jG  h.h/h0hqh2}rN  (h4]h5]h6]h7]h9]uh;KÐh']rO  hEX
   ComparisonrP  …rQ  }rR  (h,jM  h-jK  ubaubah0j:  ubj-  )rS  }rT  (h,U h2}rU  (h4]h5]h6]h7]h9]uh-j)  h']rV  hm)rW  }rX  (h,X   ActionrY  h-jS  h.h/h0hqh2}rZ  (h4]h5]h6]h7]h9]uh;KÐh']r[  hEX   Actionr\  …r]  }r^  (h,jY  h-jW  ubaubah0j:  ubeh0Urowr_  ubah0Utheadr`  ubcdocutils.nodes
tbody
ra  )rb  }rc  (h,U h2}rd  (h4]h5]h6]h7]h9]uh-j  h']re  (j(  )rf  }rg  (h,U h2}rh  (h4]h5]h6]h7]h9]uh-jb  h']ri  (j-  )rj  }rk  (h,U h2}rl  (h4]h5]h6]h7]h9]uh-jf  h']rm  hm)rn  }ro  (h,X   File existsrp  h-jj  h.h/h0hqh2}rq  (h4]h5]h6]h7]h9]uh;KÒh']rr  hEX   File existsrs  …rt  }ru  (h,jp  h-jn  ubaubah0j:  ubj-  )rv  }rw  (h,U h2}rx  (h4]h5]h6]h7]h9]uh-jf  h']ry  hm)rz  }r{  (h,X   File existsr|  h-jv  h.h/h0hqh2}r}  (h4]h5]h6]h7]h9]uh;KÒh']r~  hEX   File existsr  …r€  }r  (h,j|  h-jz  ubaubah0j:  ubj-  )r‚  }rƒ  (h,U h2}r„  (h4]h5]h6]h7]h9]uh-jf  h']r…  hm)r†  }r‡  (h,X   Identical checksumrˆ  h-j‚  h.h/h0hqh2}r‰  (h4]h5]h6]h7]h9]uh;KÒh']rŠ  hEX   Identical checksumr‹  …rŒ  }r  (h,jˆ  h-j†  ubaubah0j:  ubj-  )rŽ  }r  (h,U h2}r  (h4]h5]h6]h7]h9]uh-jf  h']r‘  hm)r’  }r“  (h,X	   No actionr”  h-jŽ  h.h/h0hqh2}r•  (h4]h5]h6]h7]h9]uh;KÒh']r–  hEX	   No actionr—  …r˜  }r™  (h,j”  h-j’  ubaubah0j:  ubeh0j_  ubj(  )rš  }r›  (h,U h2}rœ  (h4]h5]h6]h7]h9]uh-jb  h']r  (j-  )rž  }rŸ  (h,U h2}r   (h4]h5]h6]h7]h9]uh-jš  h']r¡  hm)r¢  }r£  (h,X   File existsr¤  h-jž  h.h/h0hqh2}r¥  (h4]h5]h6]h7]h9]uh;KÔh']r¦  hEX   File existsr§  …r¨  }r©  (h,j¤  h-j¢  ubaubah0j:  ubj-  )rª  }r«  (h,U h2}r¬  (h4]h5]h6]h7]h9]uh-jš  h']r­  hm)r®  }r¯  (h,X   File existsr°  h-jª  h.h/h0hqh2}r±  (h4]h5]h6]h7]h9]uh;KÔh']r²  hEX   File existsr³  …r´  }rµ  (h,j°  h-j®  ubaubah0j:  ubj-  )r¶  }r·  (h,U h2}r¸  (h4]h5]h6]h7]h9]uh-jš  h']r¹  hm)rº  }r»  (h,X   Different checksumr¼  h-j¶  h.h/h0hqh2}r½  (h4]h5]h6]h7]h9]uh;KÔh']r¾  hEX   Different checksumr¿  …rÀ  }rÁ  (h,j¼  h-jº  ubaubah0j:  ubj-  )rÂ  }rÃ  (h,U h2}rÄ  (h4]h5]h6]h7]h9]uh-jš  h']rÅ  hm)rÆ  }rÇ  (h,X   Local file overwrites remoterÈ  h-jÂ  h.h/h0hqh2}rÉ  (h4]h5]h6]h7]h9]uh;KÔh']rÊ  hEX   Local file overwrites remoterË  …rÌ  }rÍ  (h,jÈ  h-jÆ  ubaubah0j:  ubeh0j_  ubj(  )rÎ  }rÏ  (h,U h2}rÐ  (h4]h5]h6]h7]h9]uh-jb  h']rÑ  (j-  )rÒ  }rÓ  (h,U h2}rÔ  (h4]h5]h6]h7]h9]uh-jÎ  h']rÕ  hm)rÖ  }r×  (h,X   File existsrØ  h-jÒ  h.h/h0hqh2}rÙ  (h4]h5]h6]h7]h9]uh;KÖh']rÚ  hEX   File existsrÛ  …rÜ  }rÝ  (h,jØ  h-jÖ  ubaubah0j:  ubj-  )rÞ  }rß  (h,U h2}rà  (h4]h5]h6]h7]h9]uh-jÎ  h']rá  hm)râ  }rã  (h,X   File does not existrä  h-jÞ  h.h/h0hqh2}rå  (h4]h5]h6]h7]h9]uh;KÖh']ræ  hEX   File does not existrç  …rè  }ré  (h,jä  h-jâ  ubaubah0j:  ubj-  )rê  }rë  (h,U h2}rì  (h4]h5]h6]h7]h9]uh-jÎ  h']rí  cdocutils.nodes
bullet_list
rî  )rï  }rð  (h,U h2}rñ  (Ubulletrò  X   -h7]h6]h4]h5]h9]uh-jê  h']ró  cdocutils.nodes
list_item
rô  )rõ  }rö  (h,U h2}r÷  (h4]h5]h6]h7]h9]uh-jï  h']h0U	list_itemrø  ubah0Ubullet_listrù  ubah0j:  ubj-  )rú  }rû  (h,U h2}rü  (h4]h5]h6]h7]h9]uh-jÎ  h']rý  hm)rþ  }rÿ  (h,X   Local file created in Swiftr   h-jú  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;KÖh']r  hEX   Local file created in Swiftr  …r  }r  (h,j   h-jþ  ubaubah0j:  ubeh0j_  ubj(  )r  }r  (h,U h2}r  (h4]h5]h6]h7]h9]uh-jb  h']r	  (j-  )r
  }r  (h,U h2}r  (h4]h5]h6]h7]h9]uh-j  h']r  hm)r  }r  (h,X   Files does not existr  h-j
  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;KØh']r  hEX   Files does not existr  …r  }r  (h,j  h-j  ubaubah0j:  ubj-  )r  }r  (h,U h2}r  (h4]h5]h6]h7]h9]uh-j  h']r  hm)r  }r  (h,X   File existsr  h-j  h.h/h0hqh2}r  (h4]h5]h6]h7]h9]uh;KØh']r  hEX   File existsr  …r   }r!  (h,j  h-j  ubaubah0j:  ubj-  )r"  }r#  (h,U h2}r$  (h4]h5]h6]h7]h9]uh-j  h']r%  jî  )r&  }r'  (h,U h2}r(  (jò  X   -h7]h6]h4]h5]h9]uh-j"  h']r)  jô  )r*  }r+  (h,U h2}r,  (h4]h5]h6]h7]h9]uh-j&  h']h0jø  ubah0jù  ubah0j:  ubj-  )r-  }r.  (h,U h2}r/  (h4]h5]h6]h7]h9]uh-j  h']r0  hm)r1  }r2  (h,X   Remote file deletedr3  h-j-  h.h/h0hqh2}r4  (h4]h5]h6]h7]h9]uh;KØh']r5  hEX   Remote file deletedr6  …r7  }r8  (h,j3  h-j1  ubaubah0j:  ubeh0j_  ubeh0Utbodyr9  ubeh0Utgroupr:  ubaubeubeh,U Utransformerr;  NUfootnote_refsr<  }r=  Urefnamesr>  }r?  Usymbol_footnotesr@  ]rA  Uautofootnote_refsrB  ]rC  Usymbol_footnote_refsrD  ]rE  U	citationsrF  ]rG  h<hUcurrent_linerH  NUtransform_messagesrI  ]rJ  UreporterrK  NUid_startrL  KUautofootnotesrM  ]rN  Ucitation_refsrO  }rP  Uindirect_targetsrQ  ]rR  UsettingsrS  (cdocutils.frontend
Values
rT  orU  }rV  (Ufootnote_backlinksrW  KUrecord_dependenciesrX  NUrfc_base_urlrY  Uhttp://tools.ietf.org/html/rZ  U	tracebackr[  ˆUpep_referencesr\  NUstrip_commentsr]  NUtoc_backlinksr^  j:  Ulanguage_coder_  Uenr`  U	datestampra  NUreport_levelrb  KU_destinationrc  NU
halt_levelrd  KUstrip_classesre  NhBNUerror_encoding_error_handlerrf  Ubackslashreplacerg  Udebugrh  NUembed_stylesheetri  ‰Uoutput_encoding_error_handlerrj  Ustrictrk  Usectnum_xformrl  KUdump_transformsrm  NUdocinfo_xformrn  KUwarning_streamro  NUpep_file_url_templaterp  Upep-%04drq  Uexit_status_levelrr  KUconfigrs  NUstrict_visitorrt  NUcloak_email_addressesru  ˆUtrim_footnote_reference_spacerv  ‰Uenvrw  NUdump_pseudo_xmlrx  NUexpose_internalsry  NUsectsubtitle_xformrz  ‰Usource_linkr{  NUrfc_referencesr|  NUoutput_encodingr}  Uutf-8r~  U
source_urlr  NUinput_encodingr€  U	utf-8-sigr  U_disable_configr‚  NU	id_prefixrƒ  U U	tab_widthr„  KUerror_encodingr…  UUTF-8r†  U_sourcer‡  h/Ugettext_compactrˆ  ˆU	generatorr‰  NUdump_internalsrŠ  NUsmart_quotesr‹  ‰Upep_base_urlrŒ  Uhttp://www.python.org/dev/peps/r  Usyntax_highlightrŽ  Ulongr  Uinput_encoding_error_handlerr  jk  Uauto_id_prefixr‘  Uidr’  Udoctitle_xformr“  ‰Ustrip_elements_with_classesr”  NU_config_filesr•  ]Ufile_insertion_enabledr–  ˆUraw_enabledr—  KUdump_settingsr˜  NubUsymbol_footnote_startr™  K Uidsrš  }r›  (h!hÜhj	  h"j”  hh*hj¹  h&ju  h h_hhÎhj¸  h%jÝ  h$j  h#j  uUsubstitution_namesrœ  }r  h0h<h2}rž  (h4]h7]h6]Usourceh/h5]h9]uU	footnotesrŸ  ]r   Urefidsr¡  }r¢  ub.