Plone サイトで大量の大きなファイルを提供したいと考えています。大きなファイルとは、約 5MB (音楽) とそれらの多くを意味します。私はすでにZODBに直接行っていますが、良い考えではありません。Plone 3.1.1 と Zope 2.10.6 を実行しています。
5 に答える
Zodb blob のサポートは、大きなファイルを処理するための最良の、最も統合された方法です。大きなファイルは、zodb オブジェクト データベースではなく、ファイル システムに透過的に保存されます。この場合の「透過的」とは、初期構成後の実際のプログラミング作業では気付かないことを意味します。
blob 機能は現在 (2008 年半ば) の Zope バージョンにバックポートされており、plone 3 で使用できます。これには、プロジェクトで plone.app.blob を使用してください: http://plone.org/products/plone.app.blob。
ええ、現時点では ZODB BLOB サポート以外は使用しないでください。3.x シリーズのリリースでは問題なく動作します。
— アレクサンダー リミ、Plone 共同創設者
Clarifying, to the best of my knowledge:
from various candidate technologies in a PLIP (Plone Immprovement Proposal), plone.app.blob is the lead contender with widespread support
-- for exceptional use cases, we sometimes find something other than BLOBs recommended
4.0 is currently the most likely milestone for plone.app.blob to become a product within Plone core
in the meantime plone.app.blob is a recommended add-on product for current 3.x versions of Plone
-- for use cases that suggest BLOB-like technologies.
ご存知かもしれませんが、これに対する長期的な解決策は、ZODB BLOB のサポートです。チケット 6805は、おそらくこれに関する最も信頼できる情報源です。残念ながら、マイルストーンは 4.0 に設定されており、古いリリースで本番環境で実行することはおそらく適切な解決策ではありません。
歴史的に、ファイルを外部に保存し、メタデータのみを ZODB に保持するための多くの Plone 製品が存在しました。私はそれらのいくつかを試しましたが、私の経験から、現在の Plone/Zope リリースでうまく動作するものは 1 つもありません。ただし、これについて私を信用しないでください。私はこのタイプの製品を昨年ほど試していません.
個人的には、できるだけシンプルで、必要以上に Plone を使わないソリューションを求めています。音楽ファイルをディスクに保存し、apache/使用する Web サーバーから直接それらを提供し、Plone にメタデータのみを保持します - 自分で作成した製品では、優れたパフォーマンスを備えた堅牢なソリューションが得られます。つまり、製品は、音楽ファイルが利用可能な Web サーバー上のパスへのリンクを生成する必要があります。
音楽ファイルのダウンロードに認証が必要で、Zope の前で lighthttpd または apache を実行すると仮定する場合、X-sendfile に基づくソリューションを検討するのがおそらく最良の選択肢です。X-sendfile を使用すると、ファイルをディスクに保持し、音楽ファイルをクライアント ブラウザに送信する必要がある場合に、応答にヘッダー (X-sendfile) を追加します。Web サーバーはこのヘッダーを取得し、Plone が関与することなくクライアントにファイルを送信します。
いくつかのポインタ:
http://tn123.ath.cx/mod_xsendfile/ (Apache モジュール)
http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/ (Ruby の例)
トラフィックの少ないサイトに plone.app.blob をインストールし、同じインスタンス内の忙しい実稼働サイトにインストール可能 (必要に応じてロールする準備ができています) にしました。
4.0 のマイルストーンがありますが、3.4 時間頃に確認します (そして、おそらく私の運用サイトで plone.app.blob のインストール ボタンをクリックします)。
いくつかの参照:
http://n2.nabble.com/PLIPs-I%27d-love-to-see-for-Plone-3.3-tp1123218p1130015.html
http://dev.plone.org/plone/ticket/8629#comment:2ハイライト
… 3.4 では、おそらく plone.recipe.zeoserver と zope2instance に blob ファイルストレージ仕様のサポートが追加されるでしょう。これにより、インストーラーが行う必要がある所有者/権限の修正の標準的な場所が得られます。
コンテキスト: 私はplone.app.blob と、標準および実験的なインストーラーに基づく Plone のバージョン 3.1.7 および 3.2a1 を含む他のアドオン製品の非常に混合されたバッグで大まかに遊んでいます。これらの環境では、私が子供用の手袋で物事を処理しなくても、Plone は非常にうまく動作し、(予想どおり) 実験が奇妙なことにつながる場合、コミュニティからのサポートは適切なペースで適切に行われます。