附件上传可以通过upload action, WebDAV, XML-RPC或者Rest。
作为管理员可以设置附件的最大限制和附件存储方式。
大小限制
附件的最大尺寸是由在XWikiPreferences文件的一个配置参数限制的。它默认设置为大约32MB。
要更改请按照下列步骤操作:
- 跳转到http://<yourwiki>/xwiki/bin/edit/XWiki/XWikiPreferences?editor=object
- 展开XWiki.XWikiPreferences(1)对象
- 向下滚动,找到Maximum Upload Size字段,修改你想要设置的大小(以字节为单位)
- 滚动至底部,并点击“保存”
版本
当用户上传已有相同名称的附件时,你可以决定是否保留附件的版本历史
XWiki默认存储所有文件附件版本,这将花费更多的存储空间。如果你只需要最新附件的版本,可以通过编辑您的xwiki.cfg并禁附件版本控制:
xwiki.store.attachment.versioning=0
删除
删除的附件存储在回收站,可以回滚或预览的早期版本。要禁用此功能,编辑xwiki.cfg:
storage.attachment.recyclebin=0
您可以查看删除附件列表,并通过XWiki.DeletedAttachments(xwiki/bin/view/XWiki/DeletedAttachments)永久删除它们。
附件存储
XWiki可以在文件系统中直接存储您的附件也可以存储在数据库里。
不管你使用哪种存储类型,附件的元数据将被保存在xwikiattachment表里,为的是更快加载。
数据库存储(默认)
此附件存储机制将附件存储在 xwikiattachment_content, xwikiattachment_archive 以及 xwikiattrecyclebin 表里。该机制允许您附件可以轻松备份,只要跟着数据库备份就好,但是附件大小受内存限制,因为附件内容读取必须在内存中进行。作为一般规则,附件大于30MB是不可能的。
当在MySQL数据库使用此附件存储,你必须设置max_allowed_packet为你最大的附件的3倍左右的大小,因为附件及其版本历史记录必须保存。
文件系统存储
此功能在XWiki 3.0引入
在XWiki4.3之前的版本,文件系统存储不能处理包含在导入Office文档的图像。
该机制存储附件在文件目录树中。当你备份你的数据的时候,可以存储更大(超过十亿字节)的文件。文件系统附件存储实现两阶段提交机制来保持完整性,即使数据库未能提交附件的元数据。
在该机制下,回收站将没有被删除的附件,这是XWIki的一个BUG。删除附件会产生一个新的版本,如果想要还原附件,应该回滚到所需的版本。
文件系统附件存储位置
在xwiki.properties文件中的参数environment.permanentDirectory定义了存放目录。缺省情况下它的定义data,在相对Java Servlet容器的目录下。
例如:
environment.permanentDirectory=/opt/tomcat6/data
目录结构
该机制把你的附件存储在硬盘上的一个目录树,目录结构被设计成直观的导航,但你不应该添加或删除任何东西。每个附件是与数据库中的元数据捆绑的,手动修改在文件系统中存储的内容将会导致问题。
新用户
如果你是一个新的XWiki用户,想要启用文件系统附件存储,需要在xwiki.cfg文件中修改的一些设置。
这些设置如下:
xwiki.store.attachment.hint = file
xwiki.store.attachment.versioning.hint = file
xwiki.store.attachment.recyclebin.hint = file
另外,还要确保他们没有被注释掉。
正在运行wiki的用户
如果你已经有一个wiki并且想要换成文件系统存储附件,那么你应该使用Filesystem Attachment Porter插件将您现有的附件迁移到文件系统。
其他注意事项
如果你正在运行一个集群,您将需要为每个节点同步存储目录。您可以使用NFS或在每个节点上挂载磁盘。
目录清理
从XWiki Enterprise 6.0M2开始,可以通过阻止XWiki在文件系统清理空目录来节约启动时间。通过编辑xwiki.properties并设置store.fsattach.cleanOnStartup为false。如果这样做,你将要自己负责空目录的清理工作。