2015年7月2日木曜日

Swiftコマンドラインクライアントで新ConoHaのオブジェクトストレージに接続する。


最近リニューアルした新ConoHa(https://www.conoha.jp/)のオブジェクトストレージを試してます。

公式にはオブジェクトストレージを操作する方法として下記2つが紹介されていました。
・CyberDuck(GUIクライアント)を使う方法
・APIを叩く方法

CyberDuck

GUIクライアントは下記記事の通り接続できました。
新ConoHaのオブジェクトストレージにCyberDuckで接続しようとして401認証エラー
コンテナの作成やファイルのアップロード、ダウンロードは問題なくできるんですがコンテナへの属性追加とか、細かい操作はできないみたい。
やりたいのはそっちなので結局APIを使う方法に切り替えることに。

APIによる操作

APIを操作する方法はCURLを使う方法とSwiftコマンドラインクライアントを使う方法がある(?)っぽいです。(ちゃんと調べてない)
swiftコマンドラインクライアントを使う方が、OpenStackSwiftの操作に適してそうな気がしたのでそっちを先に試してみます。

インストールは下記記事の通り行いました。
ConoHaのオブジェクトストレージを操作するためにOpenStackSwiftのコマンドラインクライアントをインストールする

swiftコマンドラインクライアントによる接続

環境

MacOSX 10.10.3
swift 2.4.0

環境変数ファイルを準備

~/swift_conoha
export OS_AUTH_URL=https://identity.tyo1.conoha.io/v2.0 (認証サーバーのAPIエンドポイント)
export OS_TENANT_NAME=XXXXXXXXXXXX (テナント名)
export OS_USERNAME=XXXXXXXXXXXX (APIユーザー名)
export OS_PASSWORD=XXXXXXXXXXXX (APiユーザーパスワード)

起動確認

$ source ~/swift_conoha 
$ swift stat

Auth versions 2.0 and 3 require python-keystoneclient, install it or use Auth
version 1.0 which requires ST_AUTH, ST_USER, and ST_KEY environment
variables to be set or overridden with -A, -U, or -K.
なんか怒られた。python-keystoneclientが足りない?

python-keystoneclientをインストール

$ sudo pip install python-keystoneclient

再チャレンジ

$ swift stat
                        Account: xx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                     Containers: 1
                        Objects: 1
                          Bytes: 0
Containers in policy "policy-0": 1
   Objects in policy "policy-0": 1
     Bytes in policy "policy-0": 0
               Meta Quota-Bytes: 107374182400
                    X-Timestamp: 1432076457.10619
                     X-Trans-Id: txa813d66137274a32b79f2-0055954ee7
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes
いけたー

とりあえずここまで。

関連記事

ConoHa関連の記事をまとめました。
ConoHa関連まとめ

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...