読者です 読者をやめる 読者になる 読者になる

Database JUNKY

MySQL,MariaDBを中心としたブログです

conohaオブジェクトストレージを利用した低コスト動画サイト運用 ~conoha-ojs を利用する

オブジェクトストレージがどんなに便利かわからない状態で、ちょっと作ってみました。conohaのオブジェクトストレージですごくいいなと思ったところが、

  • amazon S3と比較してネットワーク転送料がかからない

ってところですw 今回画像だけしかアップしておりませんが、他にも動画とかもありかな?と思います。

swiftを頑張って覚えないとと思ったのですが、私にはあまりにも難しすぎて、断念しましたが、

すばらしいツールがあったのでこれを使うことにしました。

f:id:hit10231023:20160510152538j:plain

今回は、conoha-ojs

github.com

を利用して、画像をアップロードし、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

conoha gazou

てな感じで画像がでました、結構便利です。 あ。。でもendpointのURLが長くて、萎えるので、nginxのリバースプロキシとか利用して、短くするのもありかな?と思います

  • nginx.conf 一部抜粋
    location /varc {
        proxy_pass https://object-storage.tyo1.conoha.io/v1/nc_471be32785774a8aa948e4d52534a4ef/panda/uploaded;
    }