2015年7月17日金曜日

新ConoHaのオブジェクトストレージで遊ぶ (swiftコマンド編)

ConoHaまとめ

新ConoHaでオブジェクトストレージのコントロールパネル操作が削られてる!


新ConoHaでもオブジェクトストレージをサポートしているので満足はしているのですが、一方で機能が削られているのが気に食わないのです。

コントロールパネルでの操作がどこにもねえぇぇぇ、、、orz


当初、コントロールパネル経由でファイルの読み書きの確認をしてお茶を濁そうかと計画していたのですが狂ってしまいました。ということで、まずswiftコマンドで動作確認をするところから始めたいと思います。以下のページの新ConoHa版を書いてく感じです。



APIユーザーの作成とオブジェクトストレージの有効化


APIで制御する場合は別途、APIユーザーを作成する必要があります。この作業は1回のみで終了します。とっとと作りましょう。

1. 『API』の『APIユーザー』にある『追加』を選択します



2. パスワードを設定してください


3. 『オブジェクトストレージ』を選択し、容量を増やします


アイコン、小さすぎてわかりにくんじゃまいか。

4. 0GB→100GBに変更します

100GBで十分でしょう。



多分、この設定変更で課金が始まるかと思います。旧ConoHaでは、ファイルの保存を行わなければ課金が始まらない仕様でした。

5. 『API』を選択、値をメモしておきます


値は後で使用します。

これで作業は終了です。ログアウトしても大丈夫ですよ。


swiftコマンドの設定 (Windows編)


以下のページの作業をなぞっていきます。旧ConoHaの資料ですので若干の違いはありますけど、ほとんど同じです =)


以下の作業を行います。

  1. Pythonのインストール
    本家からダウンロードします。今回は2.7.10のWindows 64bit版を選択しました。標準の設定ですとPATHを通してくれないようですので、面倒ならインストーラーにPATHを通してもらうよう、設定してください。
  2. swiftクライアントパッケージのインストール
    pipは、標準でインストールされていました。「python-swiftclient」と「python-keystoneclient」をインストールします。
    • C:\tmp>pip install python-swiftclient [Enter]
    • C:\tmp>pip install python-keystoneclient [Enter]
  3. 環境変数の設定
    上記でメモした設定を環境変数に設定します。うまく動作したらbatファイルに仕込むといいかもしれません。
    • set OS_AUTH_URL=https://identity.tyo1.conoha.io/v2.0
    • set OS_TENANT_NAME=(上記のテナント名)
    • set OS_USERNAME=(上記のAPIユーザー名)
    • set OS_PASSWORD=(上記のAPIユーザー用のパスワード)
  4. swift statの実行
    以下の表示であれば正常に動作しています。まだファイルの転送を行っていない状態ですね =)。


Cygwinの場合、「python」「python-setuptools」「python-openssl」「gcc-core」をインストールし、easy_installからpipをインストールすることでswiftclientをインストールするところまでは確認しました。swift statを実行すると認証エラーっぽいメッセージが出力されました。

誰か頑張って =)


swiftコマンドの設定 (Mac編)


Mac標準でPythonがインストールされているのですが、古いバージョンのまま更新されずに問題になることが多いのでHomebrew経由でインストールしています。

  1. Homebrewのインストール
    HomebrewはMacのパッケージマネージャーです。OSSの大御所はほとんど揃っているのでお勧めです。
  2. Pythonのインストール
    15.07.15時点で2.7.10がインストールされました。pipも含まれていました。
    • brew install python
  3. swiftクライアントパッケージのインストール
    「python-swiftclient」と「python-keystoneclient」をインストールします。
    • $ pip install python-swiftclient [Enter]
    • $ pip install python-keystoneclient [Enter]
  4. 環境変数の設定
    上記でメモした設定を環境変数に設定します。うまく動作したらファイルに仕込むといいかもしれません。
    • $ export OS_AUTH_URL=https://identity.tyo1.conoha.io/v2.0
    • $ export OS_TENANT_NAME=(上記のテナント名)
    • $ export OS_USERNAME=(上記のAPIユーザー名)
    • $ export OS_PASSWORD=(上記のAPIユーザー用のパスワード)
  5. swift statの実行以下の表示であれば正常に動作しています。まだファイルの転送を行っていない状態ですね =)。


swiftコマンド(Python-swiftclient)で遊ぼう =)


ざっくりまとめてみました。


状態を表示する (swift stat)


サービス、コンテナ、オブジェクトの状態を表示します。

  • サービスの状態を表示する : swift stat
  • サービスの詳細を表示する : swift stat -v
  • コンテナの状態を表示する : swift stat [コンテナ名]
  • オブジェクトの状態を表示する : swift stat [コンテナ名] [オブジェクト名]

ディレクトリ/ファイルの一覧を表示する (swift list)


コンテナ一覧を表示します。ディレクトリやフォルダーという概念ではないのですが、分かりやすさを優先しました =)。

  • コンテナ一覧を表示する : swift list
  • オブジェクト一覧を表示する : swift list [コンテナ名]

使用例

C:\tmp>swift post conoha
C:\tmp>swift post conoha_test
C:\tmp>swift list
conoha
conoha_test
C:\tmp>swift delete conoha
C:\tmp>swift delete conoha_test
C:\tmp>swift list

ディレクトリを作成する (swift post)


コンテナを作成します。

ファイルをアップロードするには少なくとも一つはコンテナを作る必要があります。コンテナを作成しなくてもswift uploadで自動的に作ってくれるようですので、使い道は少ないかも。

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

ディレクトリ/ファイルを削除する (swift delete)


コンテナやファイルを削除します。

コンテナ内にオブジェクトが残っていても全部削除してくれるようです。便利というかちょっと怖いというか。

  • コンテナを削除する : swift delete [コンテナ名]
  • オブジェクトを削除する : swift delete [オブジェクト名]

ファイルをアップロードする (swift upload)


ファイル(オブジェクト)をサーバーにアップロードします。

ディレクトリを指定するとディレクトリ下のファイルやサブディレクトリを全てアップロードします。ただしオブジェクトストレージにはサブディレクトリという概念はありませんのでファイル指定がやや面倒になります。ファイルをWebで公開する場合にも注意が必要かもしれません。

  • ファイルをアップロードする : swift upload [コンテナ名] [ファイル名]
  • ファイルを分割アップロードする : swift upload -S [分割サイズ] [コンテナ名] [ファイル名]
  • ディレクトリ下のファイルをアップロードする : swift upload [コンテナ名] [ディレクトリ名]

使用例

C:\tmp>dir tdnet_test [Enter]
 ドライブ C のボリューム ラベルは PC です
 ボリューム シリアル番号は 7A45-CC2A です
 C:\tmp\tdnet_test のディレクトリ
2015/07/17  13:10    <DIR>          .
2015/07/17  13:10    <DIR>          ..
2015/07/17  13:10           528,228 140120150507464080.pdf
2015/07/17  13:10           713,974 140120150515479565.pdf
2015/07/17  13:10         4,960,561 140120150602400929.pdf
               3 個のファイル           6,202,763 バイト
               2 個のディレクトリ  98,970,841,088 バイトの空き領域
C:\tmp>swift upload conoha tdnet_test [Enter]
tdnet_test\140120150515479565.pdf
tdnet_test\140120150507464080.pdf
tdnet_test\140120150602400929.pdf
C:\tmp>swift list conoha [Enter]
tdnet_test\140120150507464080.pdf
tdnet_test\140120150515479565.pdf
tdnet_test\140120150602400929.pdf
C:\tmp>swift stat conoha tdnet_test\140120150507464080.pdf [Enter]
       Account:
     Container: conoha
        Object: tdnet_test\140120150507464080.pdf
  Content Type: application/pdf
Content Length: 528228
 Last Modified: Fri, 17 Jul 2015 04:27:56 GMT
          ETag:
    Meta Mtime: 1
 Accept-Ranges: bytes
   X-Timestamp:
    X-Trans-Id:
C:\tmp>swift delete conoha [Enter]
tdnet_test\140120150507464080.pdf
tdnet_test\140120150602400929.pdf
tdnet_test\140120150515479565.pdf
conoha

ファイルをダウンロードする (swift download)


オブジェクトをサーバーからダウンロードします。

  • オブジェクトをダウンロードする : swift download [コンテナ名] [オブジェクト名]
  • ファイル名を指定してダウンロードする :  swift download [コンテナ名] [オブジェクト名] -o [ファイル名]
  • コンテナごとダウンロードする : swift download [コンテナ名]

使用例

C:\tmp>swift upload conoha tdnet_test [Enter]
tdnet_test\140120150507464080.pdf
tdnet_test\140120150515479565.pdf
tdnet_test\140120150602400929.pdf
C:\tmp>swift download conoha tdnet_test\140120150515479565.pdf -o test.pdf [Enter]
tdnet_test\140120150515479565.pdf [auth 1.310s, headers 1.451s, total 1.685s, 1.904 MB/s]


こんな感じ。


このとも」始めました!


紹介用URLから登録すると、もれなく1000円分のクーポンが貰えるはずです。ぜひこの制度、活用してみてくださいね。私にとっても悪く無い話らしいんですよ =)

0 件のコメント:

コメントを投稿