2011-10-20 5 views
2

実際にファイルの内容をメモリにロードせずにArchetypes Fileフィールドにペイロードが含まれているかどうかを素早く確認する方法はありますか?Archetypes Fileにペイロード(BLOB)があるかどうかを確認する低コスト方法

ファイルをArchetypesのコンテンツアイテムにリモートで同期しています。ファイルが既に存在する場合は、同期の繰り返しを避けたいと思います。私は潜在的に何百ものファイルを繰り返しているので、私はPloneがすべてのファイルをメモリに読み込む状況を避けたいと思います。ゼロバイトかその他のデータがあるかどうかだけです。

Plone 4.1。

答えて

0

ATファイルには、ファイルサイズを確認するためのsize()メソッドがあります。サイズはどこにも保存されていないようですので、カタログに列を追加すると効果があります。

+0

呼び出しサイズ()がBLOBを読み込み、そのlen()を呼び出すことを意味しますか? –

+0

フィールドレベルの 'get_size'チェックを行うことができます - ' plone.app.blob.field'を見てください –

+0

@MikkoOhtamaaどこからでもサイズを知っているか、長さを呼んでいるか、ファイルシステムを照会する。 size()がどこかにキャッシュされ、毎回サイズがチェックされない場合は、格納されている場所を調べてください。そうでない場合は、portal_catalogに列を追加してクエリを行うこともできます。 – gforcada

関連する問題