From: GOTOU Yuuzou Date: 2004-01-07T22:59:44+09:00 Subject: [ruby-list:39030] Re: CGI#[] on Ruby ごとうゆうぞうです。 In message <1073441258.190599.3008.nullmailer@picachu.netlab.jp>, `matz@ruby-lang.org (Yukihiro Matsumoto)' wrote: > In message "[ruby-list:39028] Re: CGI#[] on Ruby" > on 04/01/07, m_seki@mva.biglobe.ne.jp writes: > > |最近WEBrickに追加されたのwebrick/cgiはどうですかね。 > > 実はそう思ってメールを書きながら読んでみたのですが、使い方が > 分かりませんでした。サンプルじゅーよー。 うぅ。さきほどHEADにサンプルをいくつか追加しました。 > webrickとどのくらい > 不可分かも読み取れなかったし。 webrick と可分と言っていいのか分かりませんが、CGI の実行には WEBrick::HTTPServer のように永続的なものは必要ありません。 multipart/form-data については、cgi.rb とは違いサイズに関係 なくメモリ上に展開するようになっているので、あまり無茶なこと はできません。が、そのかわりに、最初にデータを参照するまでは ボディを読み込まないので、 def do_POST(req, res) if req["content-length"].to_i > 1024*10 raise WEBrick::HTTPStatus::Forbidden, "file size too large" end file = req.query["file"] ... end というふうに例外を上げて処理を中断させたりできます。 大きなデータを扱う場合は利用者側で処理を切り分けて、何か MIME を処理するライブラリでも使ったほうが分かりやすいんじゃ ないかと今は思っているので、特に対処はしていませんけど、 どうでしょうね。 -- ごとうゆうぞう