2010/09/25

BLOB Support for Plone

經過一番努力Plone 4 已預設支援 blob 大型檔案,像是 Image 和 File 這兩個內容型別,上傳後的檔案,會存放在 filesystem 裡,而不再是 ZODB 了。例如上傳一個 4MB 的圖檔,到 zinstance/var/blobstorage 目錄裡,可以發現這個檔案實際存放於此,至於這個圖檔的 metadata 或 history 資訊,仍然是存在 ZODB 裡。
$ ls -l var/blobstorage/0x00/0x00/0x00/0x00/0x00/0x00
/0x0f/0xa9/0x03891a0bd54aebbb.blob
-r-------- 1 marr marr 4815658 2010-09-25 12:27
0x03891a0bd54aebbb.blob
$ ls -l var/blobstorage/0x00/0x00/0x00/0x00/0x00/0x00
/0x0f/0xb2/0x03891a0be6c98b00.blob
-r-------- 1 marr marr 20868 2010-09-25 12:27
0x03891a0be6c98b00.blob
內建的內容型別可以立即享受上述的功能,舊版的 Archetype 內容型別,必須要先完成昇級才行。昇級的主要步驟,是使用 schema extender 把 FileField 換成 BlobField,再利用 plone.app.blob 的 migrate 工具程式來執行昇級。細節可參考範例

使用 Dexterity 的場合,可參考 developer manuanl 的範例

2010/09/14

Features and Tips for Plone 4

前陣子 Plone 4 正式推出,由於使用 Python 2.6,執行效率大幅提昇支援 blob 大型檔案,有效改善 ZODB 過度成長的問題,預設搭配 SunBurst 佈景主題,以及 TinyMCE 編輯器,操作更加容易。想要知道更多改進之處,不妨直接下載安裝,或是到 demo site 親身體驗。

與開發人員有關的調整,包括 develop.cfg 的使用,可參考 Creating a theme package with ZopeSkel 的範例,另外要留意的是,訊息檔的翻譯方式也有新方式。這些調整,其實也是為了繼續朝 Plone 5 前進。