Webサービスやアプリを開発して運営するのが趣味です。



Rubyで新しいConoHaのオブジェクトストレージを使う

2015年07月16日 02:09

ConoHa がリニューアルしてVPSのストレージがSSDになるなどしました。ConoHa で SSD を使いたいとずっと思っていたのでこれは嬉しいです。ほかにもロードバランサーや、SSDを追加できる機能など、従来のVPSというよりはクラウドっぽい機能になっています。

従来あったオブジェクトストレージもほぼ仕様そのままで新しくなり、便利に使ってるので移行しよう、しかしめんどくさなというところです。とりあえず、以前作った Ruby クライアントがそのままでは使えなかったので、先ほど新しい ConoHa でも動くように修正したバージョンをリリースしました。

リリース時の記事はこちら。

ConoHa オブジェクトストレージ用 Ruby クライアント - 9mのブログ

使い方は変わらないのですが、新しい ConoHa で cono_storage を使う場合は auth_url を指定する必要があります。この auth_url はコントロールパネル → API → エンドポイント → Identity Service で確認を。


gem install cono_storage


require 'cono_storage'

client = ConoStorage.new(
auth_url: 'https://identity.tyo1.conoha.io/v2.0',
tenant_id: 'b7daff9xxxxxxxxxxxxxxxxx',
username: 1111111,
password: '^passw0rd$',
endpoint: 'https://objectstore-r1nd1001.cnode.jp/v1/b7daff9xxxxxxxxxxxxxxxxx',
web_mode: true # Web公開モード
)

# コンテナ作成
client.put_container('awesome_gifs')# => ConoStorage::Response
# オブジェクトアップロード
client.put_object('awesome_gifs','nyan.gif').url #=> "https://objectstore-...cnode.jp/.../awsome_gifs/nyan.gif"
# 削除予約付きオブジェクトアップロード
client.put_object('awesome_gifs', 'wan.gif', hearders: { 'X-Delete-At' => "1170774000" } ) # Custom Headers
# オブジェクトのメタデータなどダウンロード
client.get_object('awesome_gifs', 'nyan.gif')
# オブジェクト削除
client.delete_object('awesome_gifs', 'nyan.gif')
# コンテナ削除
client.delete_container('awesome_gifs').status #=> 204