conohaのオブジェクトストレージで、安価に動画サイトを作成しよう!
オブジェクトストレージがどんなに便利かわからない状態で、ちょっと作ってみました。conohaのオブジェクトストレージですごくいいなと思ったところが、
- amazon S3と比較してネットワーク転送料がかからない
ってところですw 今回画像だけしかアップしておりませんが、動画でもぜんぜんありだと思います!
しかし、swiftを頑張って覚えないとと思ったのですが、私にはあまりにも難しすぎて、断念しましたが、
ここに https://github.com/hironobu-s/conoha-ojs すばらしいツールがあったのでこれを使うことにしました。
【1円/時間】GMOインターネットのSSD「ConoHa VPS」
今回は、conoha-ojsを利用して、画像をアップロードし、WEB見れるようにするところまで作っていこうと思います
あたまりまえなのですが、conohaの設定で、オブジェクトストレージを利用する設定をしないと動かないので、注意w
インストール
作業は基本的にrootで行います
L=/usr/local/bin/conoha-ojs && curl -sL https://github.com/hironobu-s/conoha-ojs/releases/download/v20150406.1/conoha-ojs-linux.amd64.gz | zcat > $L && chmod +x $L
初期設定
.bash_profile のPATHを編集する :/usr/local/bin
vi ~/bash_profile ------------------------------------- PATH=$PATH:$HOME/bin:/usr/local/bin
bash_profileの再読み込み
source ~/.bash_profile
認証情報のクリア
conoha-ojs deauth
認証情報の設定
認証情報の内容につきましては、conohaのユーザーであれば、WEBログイン後の「API」というところから確認できます。
conoha-ojs auth -u "gncuNNNNNNNN" -p "passwd2016" -t "471be32785774a8aa948e4d52534a4ef" -a "https://identity.tyo1.conoha.io/v2.0"
設定内容は以下を確認
conoha-ojs auth Usage: conoha-ojs auth [OPTIONS] Authenticate to ConoHa ObjectStorage. -u, --api-username: API Username -p: --api-password: API Password -t: --tenant-id: Tenant ID -a: --auth-url: Auth URL(Optional) If not set, it will be used ConoHa Auth URL(https://ident-r1nd1001.cnode.jp/v2.0).
conoha-ojsの操作
オブジェクトストレージから基本、WEB参照できるように構成する手順
コンテナの状態を確認
conoha-ojs stat ------------------------------------------------------------------------------------------------------------- Object: Content Type: text/plain; charset=utf-8 Content Length: 0 LastModified: Mon, 01 Jan 0001 00:00:00 UTC ETag: Date: Thu, 07 Jan 2016 07:00:28 GMT Accept-Ranges: bytes X-Trans-Id: tx8e1b55a299ae495f9e52a-00568e0d0c X-Account-Object-Count: 2 X-Account-Storage-Policy-Policy-0-Container-Count: 1 X-Timestamp: 1441782846.75681 X-Account-Meta-Quota-Bytes: 214748364800 X-Account-Storage-Policy-Policy-0-Bytes-Used: 7995331 X-Account-Storage-Policy-Policy-0-Object-Count: 2 X-Account-Container-Count: 1 X-Account-Bytes-Used: 7995331
コンテナの参照
conoha-ojs list ----------------------------- panda
コンテナの削除
コンテナを削除すると下位もまるっと消えます
conoha-ojs delete panda ---------------- INFO[0000] panda/uploaded was deleted.
コンテナ/オブジェクトの作成
WEBで参照できるようにパーミッションをつける
conoha-ojs post -r ".r:*,.rlistings" panda conoha-ojs post -r ".r:*,.rlistings" panda/uploaded conoha-ojs list panda ----------------------------------------------------------------------------- uploaded
オブジェクトのアップロード
上記にて作成した、コンテナ/オブジェクトに画像ファイルをアップロードしてみます
conoha-ojs upload panda/uploaded 20131118-02-naki.jpg ----------------------------------------------------------------------------- INFO[0000] 20131118-02-naki.jpg (content-type: image/jpeg) was uploaded.
- 余談ですが、ワイルドカードの指定も行えます
conoha-ojs upload panda/uploaded 20131118-02-naki.jpg
- 注意点
こんなことやると、パスもオブジェクトとして、まるっとアップされちゃいます
conoha-ojs upload panda/uploaded /tmp/gazou/20131118-02-naki.jpg
conoha object storageのstatic web site を参照する
URLを調べる
conohaのweb管理画面から、エンドポイントの情報を確認
以下の通りになっていると思うが、これがend pointです
Object Storage Service https://object-storage.tyo1.conoha.io/v1/nc_471be32785774a8aa948e4d52534a4ef
画像がでるか確認
上記のobject storage のURLに[コンテナ]/[オブジェクト]/[アップロードしたファイル名]をつけてやればWEB参照できます
https://object-storage.tyo1.conoha.io/v1/nc_471be32785774a8aa948e4d52534a4ef/panda/uploaded/20131118-02-naki.jpg
てな感じで画像がでました、結構便利です。 あ。。でもendpointのURLが長くて、萎えるので、nginxのリバースプロキシとか利用して、短くするのもありかな?と思います
- nginx.conf 一部抜粋
location /varc { proxy_pass https://object-storage.tyo1.conoha.io/v1/nc_471be32785774a8aa948e4d52534a4ef/panda/uploaded; }