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 的範例

No comments: