Uno de los portlets básicos en Liferay Portal es la denominada
Document Library o biblioteca de documentos. Es un portlet esencial
junto a los portlets de gestión de contenidos dentro del gestor de
portales, que aloja los documentos que disponemos en nuestras
comunidades públicas o privadas.
Existen varias opciones para el albergue de los documentos en Liferay:
1. La primera de ellas es lo que se denomina el FileSystemHook
(a veces Advanced FileSystem Hook) y aloja los documentos en el
sistema de ficheros. Esta es la opción por defecto de Liferay Portal y
el método recomendado por Liferay cuando hay cantidades ingentes de
archivos. Para ello es necesario configurar en el archivo
portal-ext.properties los siguientes directorios. En una configuración
de tipo cluster lo usual sería compartir estos directorios entre los
diferentes nodos.
###
### Filesystem Hook
###
image.hook.file.system.root.dir=${liferay.home}/data/images
dl.hook.file.system.root.dir=${liferay.home}/data/document_library
2. La segunda opción es un repositorio JSR-170 (Jackrabbit).
Estos son los siguientes parámetros de configuración en el portal-ext.properties:
##
## JCR
##
dl.hook.impl=com.liferay.document.library.util.JCRHook
jcr.initialize.on.startup=false
jcr.workspace.name=liferay
jcr.node.documentlibrary=documentlibrary
jcr.jackrabbit.repository.root=${liferay.home}/data/jackrabbit
jcr.jackrabbit.config.file.path=${jcr.jackrabbit.repository.root}/repository.xml
jcr.jackrabbit.repository.home=${jcr.jackrabbit.repository.root}/home
jcr.jackrabbit.credentials.username=none
jcr.jackrabbit.credentials.password=none
Y editar el fichero de configuración repository.xml alojado en jcr.jackrabbit.repository.root
Por su parte, en un entorno clusterizado se recomienda no
guardar jcr en filesystem, por problemas de corrupción de datos, sino
utilizar una base de datos. En este caso, se configura Liferay en cada
nodo apuntando hacia una misma base de datos que se habilita en la
configuración de cluster en el archivo repository.xml (podeis ver un
ejemplo de este archivo de configuración en
el siguiente enlace)
3. La tercera es a través del CMISHook
que incorpora la nueva versión de Liferay 6 (todavía en RC), que
permite guardar los documentos en un gestor documental CMIS 1.0 como
Alfresco 3.2r2 y 3.3 Community, y Alfresco 3.2 y 3.3 Enterprise. La
estructura se guarda en nodos del tipo Liferay Home -> 10130 ->
10274 -> 1 -> 1.0 donde se guarda la instancia del portal, la
información de grupo (comunidad y organizacion), el id del documento y
la versión.
###
### CMISHook
###
dl.hook.impl=com.liferay.documentlibrary.util.CMISHook
cmis.credentials.username=Administrator
cmis.credentials.password=Administrator
cmis.repository.url=https://alfie.zylk.net/alfresco/service/cmis
cmis.repository.version=1.0
cmis.system.root.dir=Liferay Home
La manera de guardar los datos en Alfresco no es excesivamente
útil desde el ECM porque no guarda la estructura de carpetas de
Liferay, siendo imposible navegar conscientemente por el repositorio
inspeccionando los archivos. Por otro lado, al no utilizar mimetypes
ni nada parecido los archivos no son indexados y de esta manera sólo
es posible buscar desde Liferay. También conviene decir que aún no es
CMIS 1.0 100%, y lo hemos visto en nuestras pruebas porque no funciona
con Nuxeo.
Nota sobre las imágenes: Las imágenes en Liferay se guardan por
defecto en la base de datos. Puedes hacer que se guarden en la
Document Library ya sea en filesystem o en el Jackrabbit.
Nota sobre file locking: Liferay no implementa file locking y
lo delega en el dispositivo de almacenamiento. Las SAN modernas suelen
incorporar esta característica.
Nota muy importante: Por cierto, no cambies la configuración
si ya existen documentos porque se perderán. Hay que hacerlo siempre
con las bases de datos vacias.
Links: