ラベル SwiftClient の投稿を表示しています。 すべての投稿を表示
ラベル SwiftClient の投稿を表示しています。 すべての投稿を表示

2015年7月3日金曜日

新ConoHaのオブジェクトストレージにWeb公開可能なコンテナを作成する。

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

SwiftコマンドでConoHaのオブジェクトストレージにアクセスできたのでコンテナの設定をしていく。

やりたいこと

コンテナにアップロードしたファイルを認証なしで取得できるようにしたい。
(画像とかをブラウザから認証なしで見れるようにしたい)

参考

Object Storage API v1 (SUPPORTED)
よくわからんけどX-Container-Readってメタデータに.r:*ってのをセットできればいいんかな?

OpenStack SwiftでStatic Webサイトを作る
ググってたら似たようなことしてる記事みつけた。

真似てみる

$ swift post -r '.r:*' hogehoge
これだけでhogehogeコンテナの作成(すでにあれば更新)できるらしい。

確認

コマンドラインで見る方法よくわからんしCyberDuckで見てみる。
それっぽく入ってる。

適当なファイルあげてみる

$ swift upload hogehoge hello.txt 
hogehogeコンテナにhello.txtをアップロード

入った。

ブラウザで見れるかな
URLどうなるんだろうと思ってCyberDuck触ってたらURLコピーする機能あった。便利。

アクセス!

見れたっぽい。
なるほど。Web公開するだけなら簡単やね。

おまけ

コンテナ作成時にメタデータを指定しないと認証エラーしたしちゃんとできてるっぽいかな。

今日はここまで。

関連記事

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

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...