2010-01-01から1ヶ月間の記事一覧

という感じで

mod_zipはあまり使っている人がいないようなので書いてみた。実際、結構いい感じで動いています。 WSGIでyieldとか使うと、うまくzip作りながらレスポンスかえせるのかな、とかおもって調べてみたけど、よくわからんかったので、mod_zipにしてみました。

zipのCRC

とりあえず、WebDAVにファイルを置いてると、やっぱちょっと想定から外れているのかCRCの計算がめんどくさいです。 CRC算出するためには、どうしてもファイル全体が必要なので、結局、アプリ側でもファイル全体を一旦読まないといけなくなります。 順番に処…

アプリ

とりあえず、必要な条件は以下・レスポンスヘッダーにX-Archive-Files: zipという行を出力する ・bodyにzipにしたいリソースのCRC, size, url, filenameの4つの要素をスペース区切りで書く d7ecd7c6 69162 /zip/photos/sdc/d/c/f/00000000000000710822/orig…

設定

基本はなにも必要なし。 ただし、今回は以下の点を設定しています。・zipを生成するときに指定するファイルは別サーバのWebDAVにあるので、upstreamとしてWebDAVを指定したURLを作成。 もっといい方法があるのかもしれないけど、よーわからんかったのでいろ…

インストール

mod_zipはgooglecodeにあります→mod_zip nginxコンパイル時に--add-module=を指定するだけで、スンナリコンパイルできました。 nginx 0.8.31, 0.7.64で試しましたが、どっちでも問題ないようです。 私の場合は、Gentooなので、ebuildにUSE="zip"を追加する改…

nginx+mod_zip

サーバにあるファイルとか、でかいデータをzipに固めてダウンロード、という特殊だけどたまに欲しくなる機能を作る場合に、nginx+mod_zipは便利です。そもそも、mod_zipを使わなくても、アプリでがんばってzipを作るっていう選択肢もあるにはあります。(pyt…