Usando la Document library de Liferay Portal

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:

00

Más entradas de blog

Añadir comentarios