registerArchiveFile(archive_file, url_prefix, port=-1)
サーバーがurl_prefix
で始まるパスのリクエストを受信した時に、そのリクエストパスの残りの部分がアーカイブファイル内部のファイルだった場合、
サーバーは、自動的にそのファイルをクライアントに供給します。
ハンドラーをサーバーのメインポート以外のポートで実行させたい場合は、オプションでport
を指定することができます。
この関数は、URLハンドラーからコールするのではなく、hwebserver.runコールの前にコールしてください。
例えば、以下を実行して:
hwebserver.registerArchiveFile("/var/www/files/css.zip", "/css")
…クライアントが以下のサーバーパスをリクエストして:
/css/main.css
…main.cssファイルがcss.zipファイル内部に存在した場合、
…サーバーは、Pythonハンドラー不要で自動的にクライアントにmain.css
ファイルを提供します。
Pythonハンドラーではなくて、このようにしてサーバーが静的ファイル(Houdiniデータから動的に生成されないファイルで、例えばCSSやJavaScriptファイルなど)を用意するようにサーバーのセットアップを試してください。 この仮想ファイルシステムは、ファイルシステム容量が厳しい時にのみ使用してください。 静的なディレクトリを登録するのと比べて、このメソッドを使用するとパフォーマンスが悪くなります。
Note
URLハンドラーがアーカイブパスプリフィックスよりも特定された(もっと多くのパス部分にマッチする)URLを持っている場合、サーバーは、アーカイブ検索の代わりにそのハンドラーを使用します。
例えば、上記のアーカイブディレクトリが登録されていて、クライアントが/archive/geo/foo.bgeo
をリクエストし、/archive/geo
に対して動的ハンドラーがある場合、
サーバーは、アーカイブファイルを検索するのではなく、そのハンドラーを使用します。
See also |