Ploneにblobを導入。

Ploneは、Zope2の上にあります。Zopeは、データストア先として、ZODBというデータベースを使っています。これは、何でも一つのファイルに格納してしまいます。イメージ的には、accessのmdbファイルみたいな物です。一つのファイルですむので簡単にバックアップ、復元ができる利点があります。しかし、ファイルや画像もZODB内に取り込んでしまうためデータベースファイルが巨大な物になってしまうという弱点がありました。これを解決するのが、Blobという仕組みです。ZODBのバージョンが3.8になってから利用できるようになりました。なお、Plone 4 では標準となっています。

設定方法:

  • buildout.cfg内の[instance]セクションにある、egg, zcmlに、plone.app.blobを追記します。そして、blob-storage へ var/blobstorage を追記します。

  • そして、./bin/buildout をおこないます。

  • ./bin/instance fg (startなど) で起動します。

  • アドオンプロダクトから、plone.app.blob: ‘File’ replacement type 1.0b8 を選択してインストールします。

これで、ファイルはBlob対応となります。

※既存のコンテンツ(File, Image)をblobに置き換えたい場合は、egg, zcmlに、Products.contentmigration も追加しておきます。そして、ファイルタイプを置き換える場合、PloneサイトのURLの後ろに、@@blob-file-migrationを入力します。イメージの場合は、@@blob-image-migration を入力します。

migrate

こんな感じで、マイグレーションしてくれます。

参考サイト

疑問:

  • @@blob-image-migration を行ったら、KeyError: ‘ATContentTypes.ATBlob’ といわれた。

  • blob_error