RESTfull な I/F を持つストレージを作った

yaws 調査の為、試しに RESTfull な I/F を持つストレージを作ってみたので晒してみる。

インストール

% svn co http://labs.miu.vc/svn/cooldaemon/erl/ssd/trunk/ ssd
% cd ssd
% make

make を実行する前に、Makefile 内の yaws のインストール先を編集する必要がある。

起動

% ssd/scripts/ssd start -n test@localhost -p 8080 -t ram
-n erlang node の名前
-p yaws が listen するポート番号
-t ストレージがコンテンツを保存する場所(ram or disc)

停止

% ssd/scripts/ssd stop -n test@localhost

使い方

METHOD 説明
GET コンテンツの取得
HEAD コンテンツの存在確認や、サイズ、MIME タイプの取得
PUT コンテンツの保存(非同期)
DELETE コンテンツの削除(非同期)

詳細は、perl で作ったクライアントのサンプルを参照の事。
テキスト以外に画像をアップロードできる事を確認済み。

その他

もし自分で使う機会があれば、下記を修正してから使いたい

  • Mnesia にはコンテンツの保存先とメタデータのみ記録し、コンテンツは別の何かに保存する
  • クライアントから指定されたヘッダを保持する(現在は、Content-Type と Content-Length のみ保持)
  • yaws を止める(w;