ATPhotoによるZODB肥大化回避
FileSystemStorageを使ってオブジェクトをZODBの外へ
【環境】
- Zope-2.8.6-final (Linux)
- Plone-2.1.3
- ATPhoto-1-0-alpha1
- FileSystemStorage-2.5rc1
ATPhoto でPhotoをうpすると他のImageとかと同様に画像データがZODBにがっつり入ってしまうのですよ。んなことやったらZODBがとてつもなく肥大化してしまうのですよ(;´Д`)。
なんとかならんもんかとググったりしてみると(たしかPlone.orgのATPhotoのどっかにあった…)、 FileSystemStorage のキーワード。どうもコレを使うとPhotoをLocalFileSystem上におけるっぽいんですが説明が英文でイマイチ(否、さっぱり)分からず、どうやって埋め込めばいいのか苦戦してました。
んが、やっと見つけましたよ。意外と簡単…いや、はいぱぁに簡単でした(笑)。方法はATPhoto Product内の「config.py」の一番下にある一行を変えてるだけ。
FS_STORAGE = False ↓ FS_ST0RAGE = True
んでZopeをリスタートしてPhotoをうpするとFileSystemStorageで設定しているStorage pathにゴリゴリ落としてくれます。Yes!!
---
うあ~。追記です追記。
今使っているATPhotoは 1.0-alpha1 つぅバージョンなんですが、通常に使うと問題ないけどFileSystemStorageと連携するとATPhotoの状態を公開 → 非公開 にすると作成者であるMemberでさえも権限が云々で表示されなくなってしまう模様。
ただ、表示できないだけで状態変更や編集はできるっぽい。…しかし非公開にしておいて水面下でコソコソできないのはイタイ。
plone本家を漁ってみるとどうも↓が絡んでそうな悪寒。