クーポンプレゼント
ドキュメント
  • ご利用ガイド
  • オブジェクトストレージを使う(swiftコマンド編)

    オブジェクトストレージを使う(swiftコマンド編)

    オブジェクトストレージを使う(swiftコマンド編)

    ConoHaのオブジェクトストレージを、コマンドラインツールであるswiftクライアントを使って操作する方法をご紹介します。

    swiftコマンドを使用してオブジェクトストレージを操作する

    ConoHaのオブジェクトストレージは、基盤ソフトウェアにOpenStack Swiftを使用しており、OpenStackのREST APIを使いストレージを操作することができます。OpenStack SwiftのAPIに ついては、オフィシャルのドキュメントに仕 様が あり ます 。

    OpenStackSwiftに付属するコマンドラインツールであるswiftコマンドは、プログラムを書かなくても簡単にオブジェクトストレージを扱うことができます。

    接続先と認証情報の確認

    ConoHaのコントロールパネルから、オブジェクトストレージの接続先や認証に関する情報確認します。左のメニューから「API」を選択します。

    Step1

    APIの情報が確認できます。

    Step2

    Step3

    Step4

    (初回アクセス時には、「+ユーザー」をクリックして、APIユーザーを作成してください。上記は、作成後の画面です)

    以下は、それぞれの用語の解説です。オブジェクトストレージを操作する際に登場します。。

    テナント名 アカウントには一つのテナントが割り当てられます。テナントの中にコンテナを作成し、コンテナにオブジェクトを格納していきます。
    テナントID テナントのIDです
    ユーザ名 オブジェクトストレージに接続するときに必要となるユーザ名です
    API Auth URL オブジェクトストレージに認証するときに接続するURLです
    オブジェクトストレージ
    エンドポイント
    オブジェクトストレージに接続するURLです

    swiftコマンドのインストール

    swiftコマンドをインストールします。Linux(CentOSとUbuntu)やMacOSはパッケージマネージャで簡単にインストールできますが、Windowsは少し長い手順が必要になります。必要に応じ てオフィシャルのドキュメントも参考にしてください。

    Linux(CentOS/Fedora)

    yumコマンドでPythonをインストールします。その後はeasy_installを使いpipをインストールします。easy_installとpipは、共にPythonパッケージを簡単にインストールするためのパ ッケージ管理ツールです。続いて、同じようにyumコマンドでswiftクライアントをインストールします。(root権限で実行する必要があります)

    yum install python-setuptools
    yum install python-pip
    pip install python-swiftclient

    Linux(Ubuntu/Debian)

    Ubuntu/Debianでは、aptitudeパッケージマネージャを使用します。(root権限で実行する必要があります)

    aptitude install python-pip
    pip install python-swiftclient

    OS X

    OS Xは、Pythonのパッケージマネージャであるeasy_installがインストール済みのため、pipをインストールして、その後swiftクライアントをインストールします。

    sudo easy_install pip
    sudo pip install python-swiftclient	

    Windows

    Windowsで使う場合は、まずPythonをインストールします。インストールに関しては、docs.python.jpを ご確認ください。Pythonがインストールされれば、コマンドプロンプトから

    sudo pip install python-swiftclient

    でインストールできます。

    swiftコマンド使う

    swiftコマンドを使ってオブジェクトストレージを操作します。

    swiftコマンドは、スペースに続けてサブコマンドを追加することで、様々な機能を実現します。例えばstatというサブコマンドがあり、アカウント、コンテナ、オブジェクトなど、オ ブジェクトストレージに関する様々な状態を表示できます。これを使う場合は以下のようにします。

    swift stat

    コマンドを実行してみます。

    # swift stat
    Auth version 1.0 requires ST_AUTH, ST_USER, and ST_KEY environment variables
    to be set or overridden with -A, -U, or -K.
    
    Auth version 2.0 requires OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, and
    OS_TENANT_NAME OS_TENANT_ID to be set or overridden with --os-auth-url,
    --os-username, --os-password, --os-tenant-name or os-tenant-id. Note:
    adding "-V 2" is necessary for this.

    認証が求められます。オブジェクトストレージにデータの取得や保存を行うには、必ず認証を行う必要があります。

    認証

    認証を行うには、swiftコマンドに認証情報を渡します。

    # export OS_AUTH_URL='[API Auth URL]'
    # export OS_TENANT_NAME='[テナント名]'
    # export OS_USERNAME='[ユーザ名]'
    # export OS_PASSWORD='[APIユーザー作成時に設定したパスワード]'

    改めてstatサブコマンドを実行します。

    swift stat

    オブジェクトストレージに関する情報が表示されます。エラーメッセ−が表示された場合は、もう一度手順を確認してみてください。

    コンテナの作成

    次にコンテナを作成します。コンテナとはオブジェクトを格納するための領域です。オブジェクトストレージではオブジェクトを格納する場合に、格納先のコンテナを指定することにな ります。コンテナを作成するにはpostサブコマンドを使います。

    swift post [作成するコンテナ名]

    成功した場合はなにも表示されません。次にlistサブコマンドを実行してみます。

    swift list

    作成したコンテナが表示されます。ここで先ほどのstatサブコマンドに、作成したコンテナ名を渡して実行してみます。

    swift stat [作成したコンテナ名]

    出力は以下のようになります。(ここではconohaというコンテナを作成しました。)

    swift stat conoha
           Account: *****************************
         Container: conoha
           Objects: 0
             Bytes: 0
          Read ACL:
         Write ACL:
           Sync To:
          Sync Key:
     Accept-Ranges: bytes
       X-Timestamp: 1408702588.06714
        X-Trans-Id: txf01dafe9481a461bb5cfe-0053f71880
      Content-Type: text/plain; charset=utf-8

    statサブコマンドは、コンテナの詳細情報も表示できます。コンテナ名のあとにオブジェクト名を渡すと、オブジェクトの詳細情報も取得できます。statサブコマンドは利用頻度が高い ので、覚えておくと良いかもしれません。

    オブジェクトの保存、取得

    コンテナを作成したので、実際にオブジェクトストレージへのデータ格納とデータの取得を行ってみます。なお、オブジェクトストレージに格納するデータは「オブジェクト」と表現す るのが一般的です。以降は「データ」ではなく「オブジェクト」とします。

    オブジェクトストレージへ格納するファイルを用意します。オブジェクトストレージでは、保存するオブジェクトの種類は問いません。一般的なテキストファイル、画像ファイル、動画 ファイルはもちろん、システムが出力するログデータ、バックアップファイル、圧縮されたファイルなど、どのようなファイルでも格納できます。

    オブジェクトを保存するには、uploadサブコマンドを使います。uploadコマンドに保存先のコンテナ名と、保存するオブジェクトのファイル名を渡します。

    swift upload [保存先のコンテナ名] [オブジェクトのファイル名]

    保存できたら、listサブコマンドを使って確認してみます。

    swift list [保存先のコンテナ名]

    保存したオブジェクト名が返ってくれば成功です。
    オブジェクトを取得するにはdownloadサブコマンドを使用します。

    swift download [保存先のコンテナ名] [オブジェクトのファイル名]

    swiftコマンドの使いどころ

    swiftコマンドはREST APIを使用するより、簡単にオブジェクトストレージを操作することができます。

    コマンドラインツールなので、シェルスクリプトに組み込むのも簡単です。圧縮したログファイルをオブジェクトストレージに保存したり、データベースのダンプファイルをオブジェクトストレージに保存するなど、さまざまな用途でお使いいただけます。

    今すぐお申し込み