擬似階層化フォルダーとディレクトリー

擬似階層化フォルダーとディレクトリー

OpenStack Object Storage に複数階層のディレクトリーを作成できませんが、オブジェクトの名前にスラッシュ (/) を追加することにより、単一のコンテナー内に階層構造を模倣できます。delimiter クエリーパラメーターを使用して、擬似ディレクトリーを移動できます。この例は、擬似階層フォルダーとディレクトリーの使い方を示しています。

注釈

この例では、オブジェクトが backups という名前のコンテナーにあります。そのコンテナーの中で、オブジェクトは photos という名前の擬似フォルダーに整理されます。コンテナーの名前は、この例に表示されていませんが、オブジェクト URL の一部です。例えば、画像 me.jpg の URL は https://storage.swiftdrive.com/v1/CF_xer7_343/backups/photos/me.jpg です。

擬似階層化フォルダーとディレクトリーの一覧表示: HTTP

delimiterprefix なしで GET を使用して、ストレージコンテナーにあるオブジェクトの一覧を表示します。

$ curl -X GET -i -H "X-Auth-Token: $token" \
 $publicurl/v1/AccountString/backups

システムは、ステータスコード 2xx (200~299)、要求されたオブジェクトの一覧を返します。

photos/animals/cats/persian.jpg
photos/animals/cats/siamese.jpg
photos/animals/dogs/corgi.jpg
photos/animals/dogs/poodle.jpg
photos/animals/dogs/terrier.jpg
photos/me.jpg
photos/plants/fern.jpg
photos/plants/rose.jpg

delimiter パラメーターを使用して、表示される結果を制限できます。擬似フォルダーに delimiter を使用する場合、パラメーターをスラッシュ (/) にする必要があります。

$ curl -X GET -i -H "X-Auth-Token: $token" \
 $publicurl/v1/AccountString/backups?delimiter=/

システムは、ステータスコード 2xx (200~299)、要求に一致するオブジェクトを返します。スラッシュを使用するので、擬似ディレクトリー photos/ のみが表示されます。スラッシュ delimiter のクエリーから返された値は、実オブジェクトではありません。この値は、スラッシュで終わっていなければ、実オブジェクトを参照します。擬似ディレクトリーはコンテンツ形式を持ちません。各擬似ディレクトリーは、自身の subdir エントリーを持ち、JSON または XML 形式で返します。例えば、

[
   {
     "subdir": "photos/"
   }
 ]

 [
   {
     "subdir": "photos/animals/"
   },
   {
     "hash": "b249a153f8f38b51e92916bbc6ea57ad",
     "last_modified": "2015-12-03T17:31:28.187370",
     "bytes": 2906,
     "name": "photos/me.jpg",
     "content_type": "image/jpeg"
   },
   {
     "subdir": "photos/plants/"
   }
 ]
<?xml version="1.0" encoding="UTF-8"?>
 <container name="backups">
   <subdir name="photos/">
     <name>photos/</name>
   </subdir>
 </container>

 <?xml version="1.0" encoding="UTF-8"?>
 <container name="backups">
   <subdir name="photos/animals/">
     <name>photos/animals/</name>
   </subdir>
   <object>
     <name>photos/me.jpg</name>
     <hash>b249a153f8f38b51e92916bbc6ea57ad</hash>
     <bytes>2906</bytes>
     <content_type>image/jpeg</content_type>
     <last_modified>2015-12-03T17:31:28.187370</last_modified>
   </object>
   <subdir name="photos/plants/">
     <name>photos/plants/</name>
   </subdir>
 </container>

パラメーターの prefixdelimiter を使用して、階層構造の擬似ディレクトリーを含む、擬似ディレクトリー内のオブジェクトを表示します。

$ curl -X GET -i -H "X-Auth-Token: $token" \
 $publicurl/v1/AccountString/backups?prefix=photos/&delimiter=/

システムは、ステータスコード 2xx (200~299)、オブジェクト、最上位の擬似ディレクトリー内の擬似ディレクトリーを返します。

photos/animals/
photos/me.jpg
photos/plants/

入れ子構造の擬似ディレクトリーを無制限に作成できます。delimiter パラメーターと一緒に prefix パラメーターを使用して、それらを参照します。この出力例では、animals 擬似ディレクトリー内に dogs という名前の擬似ディレクトリーがあります。以下のコマンドを実行して、dogs に含まれるファイルを直接参照します。

$ curl -X GET -i -H "X-Auth-Token: $token" \
 $publicurl/v1/AccountString/backups?prefix=photos/animals/dogs/&delimiter=/

システムは、ステータスコード 2xx (200~299)、オブジェクト、入れ子の擬似ディレクトリー内の擬似ディレクトリーを返します。

photos/animals/dogs/corgi.jpg
photos/animals/dogs/poodle.jpg
photos/animals/dogs/terrier.jpg
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.