>> 古い記事: Yapra メモ
<< 新しい記事: whileループで動き続けるプログラムをログアウト時に終了させる(Ubuntu 10.10)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ローカルファイルシステムのファイルをHTTPで取得できるようにする(Ruby/WEBrick)

あるファイルをローカルファイルシステムに置いて別のアプリケーションから利用したいが、 そのアプリケーションはネット上のリソースを使うことを前提としている、という場合があります。

たとえば Firefox でフィード(のファイル)を開くと、 ローカルのファイルを開いた場合と HTTP越しの場合とで表示が異なりますし、 ローカルのフィードはライブブックマークに登録できません。
他のフィードリーダや podcatcher もローカルのフィードに対応していなかったりします。
フィードを生成するプログラムを使っていて、 パラメータをいじって確認しながら試行錯誤したいのに……と。

また、all rights reserved なコンテンツなど外部に公開できない場合も困ります (アクセスを制限する方法は何かしらあるんでしょうけど)。


それならローカルの PC の中だけでウェブサーバを動かせばいいんじゃない? というわけで、次のような Rubyスクリプトを書きました。


#!/usr/bin/env ruby
#server.rb

require "webrick"

document_root = ARGV[0] || "./"

srv = WEBrick::HTTPServer.new( :DocumentRoot => document_root,
                               :BindAddress => '127.0.0.1',
                               :Port => 10080
                               )

%w(HUP INT TERM KILL).each {|signal|
  Signal.trap(signal){ srv.shutdown }
}

srv.start

これを
$ ruby server.rb ~/foo/bar
のように実行すると、~/foo/bar 以下のファイルに HTTP越しに(http://127.0.0.1:10080/... から)アクセスできるようになります。

あとはログイン時などに自動的に起動するようにしておけば、 指定したディレクトリにファイルを入れるだけでいつでも HTTP越しに GET できるようになります。

参考

>> 古い記事: Yapra メモ
<< 新しい記事: whileループで動き続けるプログラムをログアウト時に終了させる(Ubuntu 10.10)
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。