Archive Storage API

Prev Next

Classic/VPC環境で利用できます。

OpenStack Swift APIと互換する Archive Storage APIのサポート情報を確認して、API共通呼び出しと認証方法を確認します。Archive Storageは、サポートしているバージョンが2.15.1(Pike)なので、このガイドでは2.15.1(Pike)に基づいて説明します。

サポート API

Archive Storage APIは、ストレージの管理と使用に必要な各種機能を制御できます。サポートするオペレーションリストは、Archive Storage APIガイドで確認してください。

APIの呼び出し

Archive Storage API呼び出しの段階は、次の通りです。

1. 認証キーの作成
2. 呼び出しドメインの確認
3. トークンの生成
4. トークンの削除

1. 認証キーの作成

Archive Storage APIを使用するための認証キーを作成する方法は、Ncloud APIの認証キーの作成方法と同じです。Ncoud APIの1. 認証キーの作成を参考にしてください。

2. 呼び出しドメインの確認

HTTPとHTTPSプロトコルの両方をサポートしていますが、データ保護のため、HTTPSのご使用をお勧めします。リージョン別の呼び出しドメイン情報は、次の通りです。

リージョン 認証 URL サービス URL
韓国 https://kr.archive.ncloudstorage.com:5000 https://kr.archive.ncloudstorage.com

3. トークンの生成

NAVERクラウドプラットフォームのArchive Storageは、OpenStack Keystone V3 APIを利用して認証を行い、トークンを生成することができます。生成されたトークンは、アカウント、コンテナ、オブジェクトオペレーションを使用する時に、X-Auth-Tokenヘッダ値として入力して使用します。

参考

OpenStack Keystone V3 APIに関する詳細は、https://developer.openstack.org/api-ref/identity/v3/を参考にしてください。

password認証方式を使用してトークンを生成し、NAVERクラウドプラットフォームコンソールの My Account > アカウントとセキュリティ管理 > セキュリティ管理 > アクセス管理 > API認証キーで作成した API認証キー情報のうち、Access Key IDは user name名、Secret Keyは user passwordとして使用します。
トークンを生成する場合、Projectの範囲に限定(scope)が必須であり、プロジェクト IDとドメイン IDは、Archive Storageコンソールで利用申し込みをした後、 [API利用情報を確認] ボタンをクリックして確認できます。
トークンの有効時間は24時間で、トークンの削除をリクエストして利用を停止できます。

構文

構文は次の通りです。

POST /v3/auth/tokens

リクエスト

リクエストパラメータは次の通りです。

Name In Type Description
auth body object Authオブジェクト
identity body object Identityオブジェクト
methods body array 認証方式、パスワード認証方式を使用
password body object Passwordオブジェクト
user body object Userオブジェクト、ID、パスワード、ドメイン入力必須
domain body object domainオブジェクト、IDを入力して使用し、ドメイン IDは Archive Storageコンソールの [API利用情報を確認] ボタンをクリックして確認
scope body object scopeオブジェクト。トークンの使用範囲を projectで指定して使用
project body object Projectオブジェクト、IDを入力して使用し、プロジェクト IDはArchive Storageコンソールの [API利用情報を確認] ボタンをクリックして確認

リクエストのサンプルコードは次の通りです。

curl -i -X POST -H "Content-Type: application/json" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens -d '
{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "name": "{access_key_id}",
                    "password": "{secret_key}",
                    "domain": {
                        "id": "{domain_id}"
                    }
                }
            }
        },
        "scope": {
            "project": {
                "id": "{project_id}"
            }
        }
    }
}'

レスポンス

リスポンスパラメータは次の通りです。

Name In Type Description
X-Subject-Token header string 生成されたトークン。トークン値はリクエストボディではなくヘッダに伝達
token body object Tokenオブジェクト
methods body array 認証方式、パスワード認証方式を使用
roles body array ロール情報リスト、ID、Name情報を含む
expires_at body string トークン終了日時。YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601). トークン終了日時が nullの場合、終了になりません
issued_at body string トークン生成日時。YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601)
project body object Projectオブジェクト、ドメイン、ID、Name情報を含む
catalog body array Catalogオブジェクト
endpoints body array Endpoint情報リスト
region_id body string サービス Endpointが属するリージョン情報
url body string endpoint URL.
interface body string インターフェースタイプ。Adminタイプは、Admin権限を持つユーザーのみ使用可能
type body string Endpointタイプ
audit_ids body array ランダムで生成される固有の値で、トークン情報を照会するときに使用

レスポンスのサンプルコードは次の通りです。

HTTP/1.1 201 Created
Date: Mon, 17 Sep 2018 23:46:11 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
X-Subject-Token: gAAAAABboDzDOzds2V_2uzR9xn-AQkg5RRejRkGD9L5NuhwezSqqxpmY8ZNl48vYnC1GCn21AiffNtRrDedbvVq2usnPDH2qIp-Cq2Rx54fnH406NhhW9OiaKMzFwRzS7-js3j4xGMvEk2bPErmolAT4E1Du0vsF2azycC6sNcIMsVWcvd
Vary: X-Auth-Token
x-openstack-request-id: req-40a163b1-1fcc-423d-8ec3-3f40fd413ab6
Content-Length: 1759
Content-Type: application/json
{
    "token": {
        "is_domain": false,
        "methods": [
            "password"
        ],
        "roles": [
            {
                "id": "488fac210a714fcc91b61a32525b5693",
                "name": "user"
            }
        ],
        "expires_at": "2018-09-18T23:46:11.000000Z",
        "project": {
            "domain": {
                "id": "default",
                "name": "Default"
            },
            "id": "0a11d053d4804b4c86d26ae1ff48dc1e",
            "name": "ncp-test-0"
        },
        "catalog": [
            {
                "endpoints": [
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:5000/v3",
                        "region": null,
                        "interface": "public",
                        "id": "3bf62632266c4be0880cd7170ca90f55"
                    },
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:35357/v3",
                        "region": null,
                        "interface": "admin",
                        "id": "a29ce505b6cb429ea9ca15cb126251f7"
                    },
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:35357/v3",
                        "region": null,
                        "interface": "internal",
                        "id": "e524bcde8c5a4eec8750acf3e5819d69"
                    }
                ],
                "type": "identity",
                "id": "ae1a92e6b64f4e9886517aaca2540b26",
                "name": "keystone"
            },
            {
                "endpoints": [
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
                        "region": "RegionOne",
                        "interface": "internal",
                        "id": "80773860110449b9b78dc3a05f3f6360"
                    },
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
                        "region": "RegionOne",
                        "interface": "public",
                        "id": "40f7102a57024603a53f41c4d8cb7cf3"
                    },
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com",
                        "region": "RegionOne",
                        "interface": "admin",
                        "id": "5297ae442163478e82f6f9630919b93f"
                    }
                ],
                "type": "object-store",
                "id": "fb4cbd0bf18f4beb9ac29b09f0862ce2",
                "name": "swift"
            }
        ],
        "user": {
            "password_expires_at": null,
            "domain": {
                "id": "default",
                "name": "Default"
            },
            "id": "ac1eca9c1b9f4900a0b1c4a82be49686",
            "name": "qQXiRLju7XHMXpmEskHn"
        },
        "audit_ids": [
            "U-O5n4rBSoO5jBykNXYNsw"
        ],
        "issued_at": "2018-09-17T23:46:11.000000Z"
    }
}

4. トークンの削除

生成したトークンを削除できます。

構文

構文は次の通りです。

DELETE /v3/auth/tokens

リクエスト

リクエストパラメータは次の通りです。

Name In Type Description
X-Auth-Token header string 認証のための有効なトークン
X-Subject-Token header string 削除対象のトークン。リクエストが成功するとすぐに利用できなくなる

リクエストのサンプルコードは次の通りです。

curl -i -X DELETE -H "X-Auth-Token: $token" -H "X-Subject-Token: $token_to_delete" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens

レスポンス

リクエストが成功すると、No Content(204)のステータスコードを返します。レスポンスのサンプルコードは次の通りです。

HTTP/1.1 204 No Content
Date: Tue, 18 Sep 2018 05:44:00 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Vary: X-Auth-Token
x-openstack-request-id: req-b6e8efbe-c3f2-41bc-8ca5-1067753318d4
Content-Type: text/plain; charset=UTF-8