検索サービス用の API 操作

SoftLayer オブジェクト・ストレージに独自の機能は、これまでにない包括的な検索ツールです。SoftLayer の統合検索サービスにより、ユーザーは、アカウント、コンテナー、パスに基づいて索引を検索し、検索結果をフィルタリングする上で役立つ多数のパラメーターを指定することができます。検索サービス API は、既存のオブジェクト・ストレージ API の上に構築されており、メタ情報、コンテナー、オブジェクトに索引を付けるほか、索引を検索するための使いやすいインターフェースを提供します。

要求

検索時に入力された URL に基づいて、アカウント全体、特定のコンテナー、または指定のパスを検索するための検索要求を実行することができます。目的の検索を実行するために、以下のいずれかの例と認証コードを使用してください。

目的の検索 URL
アカウント https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE
コンテナー https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE/container
パス https://dal05.objectstorage.softlayer.net/v1/AUTH_12345ABCDE/container/path

検索サービス API の目的のエリアにアクセスした後、X-Context ヘッダーを使用して値 search を指定した GET 要求が実行されます。結果をフィルタリングするために、次のように多数のパラメーターを使用できます。

パラメーター

q

検索照会ストリング。

例:

?q=test

'q' とフィールド名を区切るためにピリオドを使用するとき、
フィールド (メタ情報を含む) を指定する場合。

例:

?q.content_type=application

メタ・フィールドでは、ピリオドまたはダッシュを使用して 'meta' を実際のメタ・キー名から分離することができます。

例 (これらは同一の結果になります):

?q.meta.foo=bar
?q.meta-foo=bar

フィールド

検索するフィールド。名前とカスタム・メタ値を検索するためのデフォルト設定。

  • container: コンテナーの名前
  • content_type: オブジェクトのコンテンツ・タイプ
  • count: コンテナー内のオブジェクトの数
  • hash: ファイルの要約ハッシュ (etag)
  • last_modified: オブジェクトの最終変更日時を示す dateTime スタンプ
  • meta.myfield: コンテナーまたはオブジェクトに定義されたカスタム・メタ値
  • name: オブジェクトまたはコンテナーの名前
  • object: オブジェクト名
  • read: x-container 読み取りヘッダー値 (ACL 用)
  • write: x-container 書き込みヘッダー値 (ACL 用)

タイプ

検索対象のエンティティーのタイプ。デフォルトでは、すべてのタイプ (コンテナーとオブジェクト) が表示されます。

  • コンテナー
  • オブジェクト

フォーマット

戻り値のフォーマット。以下に例を表示します。デフォルト: プレーン

  • json
  • xml
  • プレーン

再帰的

検索が 1 つのディレクトリー・レベルに制限されるか、再帰的に検索するかを定義します。デフォルト: true

  • true
  • false

目的の応答に基づいて、基本検索照会に 1 つ以上のパラメーターを含めることができます。複数の検索パラメーターを入力する場合は、パラメーターをアンパーサンド (&) で区切ります。例えば、アカウントを再帰的に検索してコンテンツ・タイプが「アプリケーション/ディレクトリー」のオブジェクトを探し、XML フォーマットの応答を要求するには、要求を次のようにフォーマットします。

GET /v1/<account>?q=application%2Fdirectory&field=content_type&recursive=true&format=xml
X-Context: search
X-Auth-Token: AUTH_SADASDM43423DMSSAZXC234

返答

照会に対する検索 API の応答は、基本ヘッダーと、json、xml、またはプレーン・テキストにフォーマットできる本文として返されます。応答ヘッダーは、照会の dateTime スタンプ、コンテンツと返答のタイプ、返答の件数、照会に関連した項目の総数を示します。応答ヘッダーは以下のフォーマットになります。

HTTP/1.1 200 OK
Date: Thu, 19 Oct 2011 12:00:00 GMT
Content-Type: application/xml; charset=utf-8
X-Search-Items-Count: 3
X-Search-Items-Total: 29

応答ヘッダーの中で、X-Search-Items-Count は応答に含まれている項目数を示し、X-Search-Items-Total は利用可能な項目の総数を示します。総数が項目数を超えている場合は、さらに多くの項目を取得できます。パラメーターを修正すると、さらに多くの情報が返される場合があります。

応答本文には、コンテンツ・タイプ、最終変更日、MD5 ハッシュなどの、照会に関連した多数のプロパティーが含まれます。重要な点として、どの応答でも、データに関連したすべてのプロパティーが返されることに注意してください。現時点では、オブジェクト・ストレージ API にはオブジェクト・マスク用のアプリケーションが存在しないため、リレーショナル・プロパティーやカウント・プロパティーはありません。下記に、json、XML、プレーン・テキストで返される可能性がある返答本文の例を示します。

JSON 応答本文 (application/json)

[
    {
        "container": "test1",
        "content_type": "application/x-python-code",
        "hash": "c23c402de9d67332bce2a73f31a503c3",
        "last_modified": "Wed, 19 Oct 2011 21:26:30 GMT",
        "meta_mtime": "1318343501.0",
        "name": "test.py",
        "object": "test.py",
        "type": "object"
    },
    {
        "container": "test",
        "content_type": "text/plain",
        "hash": "d41d8cd98f00b204e9800998ecf8427e",
        "last_modified": "Mon, 17 Oct 2011 14:31:11 GMT",
        "meta_mtime": "1318861839.0",
        "name": "test_data/3.txt",
        "object": "test_data/3.txt",
        "type": "object"
    }   
]

XML 応答本文 (text/xml)

<?xml version="1.0" encoding="UTF-8"?>
<results>
    <object>
        <container>test1</container>
        <name>test.py</name>
        <object>test.py</object>
        <last_modified>Wed, 19 Oct 2011 21:26:30 GMT</last_modified>
        <content_type>application/x-python-code</content_type>
        <hash>c23c402de9d67332bce2a73f31a503c3</hash>
        <type>object</type>
        <meta_mtime>1318343501.0</meta_mtime>
    </object>
    <object>
        <container>test</container>
        <name>test_data/3.txt</name>
        <object>test_data/3.txt</object>
        <last_modified>Mon, 17 Oct 2011 14:31:11 GMT</last_modified>
        <content_type>text/plain</content_type>
        <hash>d41d8cd98f00b204e9800998ecf8427e</hash>
        <type>object</type>
        <meta_mtime>1318861839.0</meta_mtime>
    </object>
</results>

プレーン・テキスト応答本文 (text/plain)

container: test1
name: test.py
object: test.py
last_modified: Wed, 19 Oct 2011 21:26:30 GMT
content_type: application/x-python-code
hash: c23c402de9d67332bce2a73f31a503c3
type: object
meta_mtime: 1318343501.0
 
container: test
name: test_data/3.txt
object: test_data/3.txt
last_modified: Mon, 17 Oct 2011 14:31:11 GMT
content_type: text/plain
hash: d41d8cd98f00b204e9800998ecf8427e
type: object
meta_mtime: 1318861839.0

前述したように、前のセクションにリストされているパラメーターを使用して、特定のタイプの応答を呼び出すために、すべての要求を構造化することができます。このサービスの機能に慣れたら、「メソッド (Methods)」ページで、この機能の基礎に関する詳細と、オブジェクト・ストレージおよび検索サービス API に関連するすべてのメソッドを参照してください。