ConoHa オブジェクトストレージ用 Ruby クライアント

photo

そこそこ信頼できるオブジェクトストレージとして ConoHa を使い出しました。ちょくちょく AWS S3 は使っていたんですけど、無限にダウンロードし続けるバグを書いてしまったせいで 6 万円以上無駄にパケ死してしまったということがあり、個人ではなるべく使いたくないという気持ちでいっぱいになっています。その点 ConoHa は転送量無料で 100GB/450 円/月と、S3 の転送量課金に怯える貧民にとってはとてもいいサービスとなっています。

オブジェクトストレージが嬉しいケース

自分の場合です。普通にもっとたくさんある。

  • アプリケーションと別の場所に静的ファイルを設置できる

    • アプリサーバーが複数台必要になった場合ほぼ必要になります
    • アプリサーバーが壊れても復活できる
  • とりあえずここに置いておけばファイルは安全

    • オブジェクトストレージは何重にもファイルを保存してるので安心感ある
    • アプリサーバーが壊れても復活できる

ConoStorage

現在の ConoHa オブジェクトストレージ管理画面では作成と削除のみ行えるようになっており、ほとんど使えません。というかブラウザから使う画面なんてほとんどないので Ruby から扱えるようにクライアントを書いた。最初は openstack gem を使って操作していたんだけど、Web 公開前提で使うのがかなり分かりづらかったし API リファレンス網羅するのはもだいぶ分かりづらい感じがあった。

Usage

gem install cono_storage
require 'cono_storage'

client = ConoStorage.new(
  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

ConoHa の API リファレンス見ながら書いたけど、OpenStack Swift ならエンドポイント変えるだけでそのまま使えるんじゃないかという気が若干しています。デフォルト値なしのキーワード引数を使っているため、Ruby 2.1 以降が必要です。ソースは Github にあります。

Github - kkosuge/cono_storage

オブジェクトストレージ API リファレンス - ConoHa

openstack - ConoHa オブジェクトストレージの静的 WEB ページ公開機能でイメージギャラリーを作る - Qiita


2015年02月05日

『ネットで成功しているのは〈やめない人たち〉である』読んだ

wishlist に置いていたら @soramugi 氏が貸してくれたので読みました。本の内容はというと、著名ブロガー11…

2015年01月03日

ゴールドジムの福袋買った

今年は福袋買いたい気持ちなかったんですがこれには負けた。3900円で10000円相当の物が入っているとのこと。 中身はこんな感じ。Tシャツはサイズは合ってるのに異常に腕の部分が太くてうけた。ステッカー手に入れる機会相当少ないんでうれしいですね。満足でした。

2014年12月30日

ディスプレイ遍歴

年の瀬なのでパソコンモニター環境の推移について書きます。 外部モニタ使い始めたのが2009年なのでそれ以降しかないです。 そもそも初めて自分のパソコン持ったのが2008年です。 2009年頃。Acerの2…

2014年12月11日

沖縄リモートワーク

2014年11月13日

Android Wear アプリつくった

Android Wear アプリつくった Wear Barometer - Google Play の Android アプリ Moto 360 届いたので Wear…