##オブジェクトストレージのStaticWeb概要
OpenStackのオブジェクトストレージであるSwiftはAmazon S3互換の機能が実装されております。
ストレージとしての機能はもちろん、静的ページや画像、動画などをWeb公開する機能(StaticWeb)も実装されていて、これだけで簡単なWEBサーバーとしてファイルを公開できます。
この機能を使うと認証なしでオブジェクトストレージのファイルを閲覧できるようになります。
#StaticWebを使うために必要なのはこれだけ
コンテナに以下の追加ヘッダーを設定することで、該当コンテナ内のファイルについて公開できます。
対象のコンテナ(ディレクトリ)に ’X-Web-Mode: true’ のヘッダーをつける
対象のコンテナ(ディレクトリ)に 'X-Container-Read: .r:*,.rlistings' のヘッダーをつける
※,.rlistings の部分はWEBページからファイルをリスティングする機能を付与します。誰でもファイル一覧が見れてしまうので、不要でしたら削除してください。
公式のswiftコマンドやREST APIでやれば済むのですが、GUIでよく使われるCyberduckだけでできないかなあとやってみたら出来ました。
ちなみにswiftコマンドでの実例は公式ドキュメントをご参照ください。
http://docs.openstack.org/api/openstack-object-storage/1.0/content/Examples_for_static_web-dle4025.html
#Cyberduckでの設定方法
今回はGMOアプリクラウド・ConoHaの環境で試します。
-
Cyberduckで接続できるよう設定をおこないます。設定方法は公式サイトを参照ください。
http://cloud.gmo.jp/docs/objectstorage/cyberduck/
https://www.conoha.jp/guide/g-49.html -
「メタデータ」アイコンを選択し、左下の編集アイコンから「Custom Header」をクリックすると追加ヘッダーを入力できるようになるので、以下を設定。
- X-Web-Mode: true
- X-Container-Read: .r:*,.rlistings
- コンテナ内にファイルをアップロードし、ブラウザからアクセスすると表示されます。URLはGMOアプリクラウド・ConoHaのコントロールパネルより確認できます。
以上