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

photo