[PHP SDK for OpenStack/Rackspace API] オブジェクト ストレージ サービスの使用
Swift は、OpenStack のオブジェクト ストレージ サービスです。 php-opencloud ライブラリでは、接続オブジェクトによって作成された ObjectStore クラス (OpenStack または Rackspace) を通じてアクセスされます。
例:
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$cloud = new \OpenCloud\OpenStack(array( 'username'=>'{username}','password'=>'{password}')); $swift = $cloud->ObjectStore('cloudFiles','DFW');</code>
最上位のオブジェクト ストレージ コンポーネント インスタンスはコンテナです。コンテナはオブジェクトのコレクションの名前であり、ファイル システムのディレクトリやフォルダに似ています (実際には同等ではありません)。
すべてのオブジェクトがコンテナに保存されます。
オブジェクト ストレージ インスタンス内のすべてのコンテナを一覧表示します
ContainerList オブジェクトは、Container オブジェクトのコレクションです。オブジェクト ストレージ インスタンス内のすべてのコンテナを一覧表示します:
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$containers = $swift->ContainerList(); while($container = $containers->Next()) printf("%s\n", $container->name);</code>
新しいコンテナを作成します
上記で新しく作成した $swift オブジェクトの Container() メソッドを使用して、新しい (空の) コンテナを作成します。
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$mycontainer = $swift->Container();</code>
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$mycontainer->Create('MyContainerName');</code>
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$mycontainer->name = 'MyContainerName'; $mycontainer->Create();</code>
ObjectStore オブジェクトの Container() メソッドにパラメータを渡すと、既存のコンテナを取得できます:
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$oldcontainer = $swift->Container('SomeOldContainer');</code>
この場合、SomeOldContainer に関する情報が取得されます。これにはコンテナのメタデータ情報が含まれます。
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">printf("Container %s has %d object(s) consuming %d bytes\n", $oldcontainer->name, $oldcontainer->count, $oldcontainer->bytes);</code>
コンテナの削除
Delete() メソッドはコンテナ
を削除します<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$oldcontainer->Delete();</code>
コンテナの更新
コンテナーはバックグラウンドでまったく同じ方法で作成および更新されます。 Create() メソッドを使用してコンテナを更新できますが、(プログラム内で) セマンティクスが異なる場合があるため、Update() メソッドは Create() メソッドのエイリアスとしても使用されます。
翻訳元: https://github.com/rackspace/php-opencloud/blob/master/docs/userguide/objectstore.md
<code style="font-family:Consolas,'Liberation Mono',Courier,monospace; font-size:12px; margin:0px; padding:0px; border:none; background-color:transparent">$oldcontainer->metadata->update_time = time(); $oldcontainer->Update();</code>