在Plone 3中存储大文件的最佳方法是什么?

时间:2008-09-15 16:24:18

标签: plone

我想在Plone网站上提供很多大文件。大文件我的意思是大约5MB(音乐)和很多。我已经直接去了ZODB,不是一个好主意。我正在运行Plone 3.1.1和Zope 2.10.6。

5 个答案:

答案 0 :(得分:9)

Zodb blob支持是处理大文件的最佳,最集成的方式。大文件透明地存储在filesytem而不是zodb对象数据库中。在这种情况下,“透明地”意味着在初始配置后您将不会在实际编程工作中注意到它。

blob功能已被移植到当前(2008年中途)的zope版本,可以在plone 3中使用。在项目中使用plone.app.blob:http://plone.org/products/plone.app.blob

答案 1 :(得分:7)

是的,此时你不应该使用除ZODB BLOB支持之外的任何东西。它适用于3.x系列版本。

More information in ticket #6805

- Plone联合创始人Alexander Limi

答案 2 :(得分:3)

据我所知澄清:

  • 来自PLIP(Plone改进提案)中的各种候选技术,plone.app.blob是广泛支持的主要竞争者

    - 对于特殊用例,我们有时会发现BLOB推荐以外的其他内容

  • 4.0是目前plone.app.blob成为Plone核心产品的最可能的里程碑

  • 与此同时,plone.app.blob是当前3.x版Plone的推荐附加产品

    - 用于建议类似BLOB技术的用例。

答案 3 :(得分:1)

您可能已经知道,对此的长期解决方案应该是ZODB BLOB支持。 Ticket 6805可能是这方面最具权威性的来源。不幸的是,里程碑设置为4.0,并且在旧版本的生产中运行它可能不是一个好的解决方案。

历史上,存在许多用于在外部存储文件的Plone产品,仅在ZODB中保留元数据。我已经尝试了其中几个,根据我的经验,没有一个适用于当前的Plone / Zope版本。不要相信我,但是,去年我没有尝试过这种类型的产品。

就个人而言,我会寻求尽可能简单的解决方案,而不是涉及Plone而不是必要的。将音乐文件存储在磁盘上,直接从apache /您使用的任何Web服务器提供它们,只保留Plone中的元数据 - 在您自己编写的产品中,将为您提供具有良好性能的强大解决方案。也就是说,您的产品应该生成指向Web服务器上可以使用音乐文件的路径的链接。

如果您需要授权下载音乐文件并假设您在Zope前面运行lighthttpd或apache,那么查看基于X-sendfile的解决方案可能是最佳选择。使用X-sendfile,您可以将文件保留在磁盘上,并在将音乐文件发送到客户端浏览器时向响应添加标头(X-sendfile)。 Web服务器将选择此标头并将文件发送到客户端,而不涉及Plone。

一些指示:

答案 4 :(得分:0)

我在一些低流量网站上安装了plone.app.blob,并且可以在同一个实例中为我繁忙的生产网站安装(准备滚动,如果你愿意)。

这里有4.0里程碑,但我肯定会在3.4左右的时间内查看(并且可能会点击我的生产网站上的plone.app.blob的安装按钮)。

一些参考文献:

http://n2.nabble.com/PLIPs-I%27d-love-to-see-for-Plone-3.3-tp1123218p1130015.html

http://dev.plone.org/plone/ticket/8629#comment:2突出显示

  

... 3.4,当我们可能有blob filestorage规范时   支持添加到plone.recipe.zeoserver和zope2instance。那会的   给我们一个标准的位置,无论是什么所有者/权限修复   安装人员需要制作。

在上下文中:我正在和plone.app.blob一起玩大致,以及基于标准和实验的Plone 3.1.7和3.2a1版本的其他附加产品。安装。在这些环境中,没有我用小孩手套处理事情,Plone sies表现得非常好,当(如预期)实验导致奇怪时,社区的支持是节奏和适当的。