Asociar documentos digitales a los registros

De ABCDWIKI Español
Saltar a: navegación, buscar

Url para presentar documentos digitales

Los documentos digitales asociados a registros deben estar alojados en el servidor bajo una estructura que garantice tanto su acceso y presentación en los procesos de recuperación de información, como su portabilidad.

Desde el punto de vista de la recuperación de información, el acceso a los documentos digitales se realiza a través de una URL, la cual debe contener la identificación del servidor donde se encuentran alojados los documentos más la ruta a la carpeta del servidor donde se encuentran guardados. En este URL podemos distinguir tres componentes:

Ddr 1.png

La ruta relativa corresponde a la ubicación del recurso en el servidor. Esta ruta puede cambiar dependiendo de la instalación realizada en cada servidor.

La ruta absoluta corresponde a la instalación del recurso dentro de ABCD, de tal manera que los recursos asignados puedan ser localizados independientemente de la forma como esté instalado el sistema en el servidor, lo cual hace al sistema portable.

El nombre del archivo identifica plenamente al recurso digital. Se recomienda utilizarlo en minúsculas, sin espacios, acentos o caracteres especiales a fin de asegurar su transportabilidad entre diferentes sistemas operativos.

El almacenamiento de los documentos digitales puede realizarse:

  1. En una carpeta colocada en la raíz del servidor: directorio htdocs (linux - apache) o wwwroot (windows - IIS)
  2. En una carpeta colocada fuera de la raíz del servidor

El acceso via http a los documentos digitales variará, de acuerdo al lugar elegido para el almacenamiento de los mismos:


Almacenamiento de los documentos digitales en la raíz del servidor

Al estar en la raíz del servidor, los documentos digitales pueden ser referidos directamente a través del protocolo http, suministrando la dirección donde se encuentran localizados. En este caso, se debe crear una carpeta (ejm. bases) en la raíz del servidor (/abcd/www/htdocs en la instalación estándard de ABCD), y a partir de esa carpeta crear una estructura de sub-carpetas de forma de alojar organizadamente todos los documentos digitales de las bases de datos:

Almacenar dd 01.png

En el archivo de configuracion del Apache (/ABCD/apache2.2/conf/httpd.conf), en la instalación típica de ABCD, se establece que la raíz del servidor se encuentra bajo la ruta /ABCD/www/htdocs, por lo tanto, al escribir: http://localhost:9090 apuntamos directamente a esa carpeta.

Si para colocar nuestros documentos digitales abrimos una carpeta, por ejemplo bases en la raíz del servidor , podemos direccionar los archivos digitales ahí contenidos, en la forma: http://localhost:9090/bases/imagen.png.

Para darle una mejor organización al almacenamiento de los objetos digitales, podemos subdividir la carpeta bases, creando una subcarpeta para cada base de datos (por ejemplo: biblo), y al interior de esta última podemos crear subcarpetas por tipo de recurso, o cualquier otra clasificación que nos ayude a organizar nuestros documentos.

Al estructurar el almacenamiento de los documentos digitales hay que tomar en cuenta que mientras más archivos existan en una carpeta, mayor será el tiempo necesario para recuperar un archivo en particular para presentarlo en la página. Por ello, si nuestra base de datos va a tener asociados muchos documentos digitales conviene estructurar las subcarpetas, por ejemplo, por el último dígito del MFN, para asegurarnos una distribución racional y equitativa de todos los archivos digitales


Almacenamiento de los documentos digitales fuera de la raíz del servidor

Es altamente recomendable colocar la carpeta de las bases de datos y sus recursos asociados en una carpeta fuera de la raíz del servidor.

Almacenar dd 02.png

En este caso hemos colocado todas las bases de datos y otros recursos necesarios a ABCD, en la carpeta e:/bases_abcd (la instalación típica de ABCD contempla la carpeta /abcd/www/bases' para estos efectos).

Como bases_abcd no se encuentra en la raíz del servidor, los archivos y recursos en su interior no pueden ser localizados directamente con el protocolo http.

Para acceder a los archivos digitales en el caso en que estén alojados fuera de la raíz del servidor, ABCD provee un script denominado show_image.php, el cual recibe como entrada el nombre de la base de datos y el nombre del archivo a desplegar y con esta información lee el archivo digital y envía su contenido a la página.

Para que este procedimiento funcione correctamente, la carpeta que aloja las bases de datos, tendrá una subcarpeta para cada una de ellas y dentro de estas subcarpetas existirá una carpeta para el alojamiento de los documentos digitales (Ejm: /bases_abcd/biblo/images). Sin embargo, para una mayor flexibilidad y compatibilidad con sistemas ya configurados, la carpeta con los objetos digitales puede estar localizada en cualquier parte. Por ello debe existir en la carpeta de la base de datos (/bases_abcd/biblo) un archivo denominado dr_path.def donde se le indicará a ABCD la ruta real donde se encuentran almacenados los documentos digitales de la base de datos, en la forma:

         ROOT=e:/bases_abcd/biblo/dr/


Cómo asociar documentos digitales a un registro

El proceso requiere:

  1. Almacenar el documento en el servidor
  2. Almacenar en el registro el nombre y la ruta absoluta del documento

Se puede asociar a un registro cualquier tipo de documento digital que pueda ser manejado luego por el browser: páginas html, imágenes, sonidos, videos, flash, .pdf, .doc, etc.

Se requiere definir una carpeta para almacenar los documentos digitales la cual puede estar localizada:

  1. En la carpeta bases (externa a la raíz del servidor) En la carpeta htdocs (bajo la raíz del servidor)
  2. En cualquier otra carpeta que determine el usuario

Para lograr esta versatilidad, es necesario crear en la carpeta donde está alojada la base de datos (ejm: /abcd/www/bases/biblo), un archivo denominado dr_path.def donde se coloca la ruta que apunta hacia la carpeta bajo la cual se van a almacenar los documentos de la base de datos activa, de acuerdo al siguiente formato:

     ROOT=ruta_a_la_carpeta_de_documentos_digitales/ 
     Ejm:  ROOT=/bases/biblo/dr/ 
           ROOT=/abcd/www/htdocs/bases/biblo/

En el primer caso los documentos digitales se almacenan fuera de la raiz del servidor en la carpeta de las bases de datos (bases). En el segundo caso los documentos digitales se almacenan en una carpeta localizada en la raiz del servidor (bases/).

Si el archivo dr_path.def no está presente en la carpeta de la base de datos, se asume que el directorio raíz de las imágenes es:

     Raíz del servidor/bases/Nombre de la base de datos/ 
     Ejm: /ABCD/www/htdocs/bases/biblo/


Creación del formulario de ingreso para vincular documentos digitales

ABCD permite definir en la FDT un tipo de campo especial – subir archivo – (upload) que facilita el proceso de subir los archivos al servidor o de seleccionar del servidor archivos ya existentes, para asociarlos a registros. Opcionalmente a este campo se le puede agregar un sub-campo para almacenar la descripción del objeto subido de forma tal que en el formato de salida se haga el enlace utilizando esa descripción y no el nombre del archivo

Cuando en una hoja de entrada se define este tipo de campo, ABCD inserta dos enlaces con los cuales puede:

Copy to folder.gif Subir archivos al servidor
Add.gif  Seleccionar archivos del servidor


Subir archivos al servidor

Se presenta la siguiente hoja de entrada:

Almacenar dd 03.png

Use el vínculo Explorar para localizar, en el servidor, la carpeta donde será almacenado el archivo. La exploración se inicia a partir de la carpeta indicada bajo el parámetro ROOT del archivo dr_path.def. La ruta de la carpeta seleccionada se colocará en el recuadro Guardar en.

Nótese que no se copia la ruta de la carpeta completa, sino unicamente la porción que continúa a la ruta especificada en el archivo de configuración dr_path.def (ruta absoluta). La ruta completa se provee en el formato de despliegue cuando se construye el URL del documento. Esto con el fin de asegurar la portabilidad de las carpetas, ya que al ser transferidas a otro servidor, si se mantiene la estructura de sub-carpetas, solo será necesario modificar el archivo dr_path.def y el formato de despliegue.

Haga a continuación clic sobre el botón Browse para localizar en el disco local el documento que desea subir al servidor. Luego de localizado, puede llenar la casilla descripción y si ha definido un subcampo en la FDT se insertará el nombre del archivo como primer subcampo y la descripción como segundo subcampo. haga clic sobre Subir archivo para almacenar el archivo seleccionado en el servidor, bajo la ruta especificada.

Nota importante:

El tamaño máximo de un archivo que se puede subir por este método esta especificado en el parámetro upload_max_filesize del archivo de configuración del PHP (php.ini). Una vez subido el archivo, ABCD transfiere directamente a la hoja de entrada sus datos de localización a fin de que quede vinculado con el registro.

Los tipos de archivo que se pueden subir están fijados por el parámetro $ext_allowed de config.php.


Explorar la carpeta con los documentos digitales

Seleccionar la carpeta

Explorar 1.png
  • Use el vínculo Crear nueva carpeta para abrir una carpeta nueva en la subcarpeta donde está colocado. Se le presentará una ventana para solicitarle el nombre de la carpeta, la cual será creada bajo el directorio desde el cual se solicitó la creación.
  • El nombre de la nueva carpeta no debe tener caracteres acentuados o espacios. Se recomienda crearla en minúsculas
  • Haga clic sobre Radiobutton 1.png para seleccionar una carpeta y pasar su ruta al formulario correspondiente
  • Haga clic sobre el nombre de la carpeta para abrirla y visualizar su contenido


Seleccionar los documentos

Explorar.png *Haga clic sobre el nombre de la carpeta para abrirla y visualizar su contenido
  • Haga clic sobre el nombre del archivo para visualizarlo en una nueva ventana
  • Haga clic sobre una casilla para seleccionar un archivo y enviarlo a la hoja de entrada correspondiente


Vincular a los registros archivos ya localizados en el servidor

En algunas oportunidades, los documentos a vincular son enviados al servidor mediante procedimientos de copia, FTP, etc Si este fuera el caso, entonces se necesita explorar la carpeta donde los mismos están almacenados para proceder a su vinculación con los registros. Siga las instrucciones detalladas en el procedimiento de exploración haciendo clic sobre para seleccionar y vincular los documentos.

Al igual que en el caso anterior, no se copia la ruta completa hacia el archivo , sino la porción que continúa a la ruta especificada en el archivo de configuración dr_path.def. La ruta completa se provee en el formato de despliegue cuando se construye el URL del documento. Una vez seleccionado el archivo, ABCD transfiere directamente a la hoja de entrada sus datos de localización a fin de vincularlo con el registro


Presentación de los documentos vinculados, utilizando los formatos de salida

El URL a suministrar para presentar los documentos vinculados depende del lugar donde se hayan almacenado los mismos.


Presentación de documentos vinculados alojados en la raíz del servidor

Si el directorio de almacenamiento está ubicado en la raiz del servidor, el URL se construye con los siguiente elementos:*url del servidor

  • Nombre de la carpeta donde están almacenadas las imágenes, tomada a partir de la raíz del servidor
  • Etiqueta del campo donde está almacenada la referencia al documento
         Ejm: "http://localhost:9090/bases/biblo/"v800

Es decir, se puede acceder directamente a la imagen, suministrando su URL.


Presentación de documentos vinculados alojados fuera de la raíz del servidor

Si el directorio de almacenamiento está ubicado fuera de la raiz del servidor, la imagen no puede ser leída a través de un URL por cuanto el servidor WEB (Apache, IIS, etc.) impide el acceso a archivos y carpetas localizadas fuera de la raíz del servidor

Para estos efectos, ABCD dispone de un script denominado show_image.php, localizado en htdocs/central/common, el cual lee la imagen como si fuera un archivo local y se encarga de transferirla a la página correspondiente.

show_image.php requiere dos parámetros:

      base     donde se envía el nombre de la base de datos a la cual está
               vinculada el documento
     image     donde se envía el nombre del documento que se desea localizar 
               (tomado del campo de la base de datos donde se encuentra almacenado)

La información de la ruta absoluta al documento la complementa ABCD al momento de despliegue leyendo el archivo dr_path.def. Por lo tanto, para desplegar un documento que no está localizado en la raíz del servidor se construye el siguiente URL:

        http://localhost:9090/central/common/show_image.php?base=XXX&image=YYY

Donde:

        XXX = nombre de la base de datos activa
        YYY = contenido del campo donde está almacenado el nombre del documento
        
       Ejm: "http://localhost:9090/central/common/show_image.php?base=biblo&image="v800


Ejemplo de la sintaxis a aplicar en un formato para presentar documentos digitales

Documentos digitales 1.png

Documentos digitales 2.png


Para presentar las imágenes cuando no están en la raíz del servidor:

   (if p(v800) then  
      '<a href=http://localhost:9090/central/common/show_image.php?base=biblo&image='v800^*

      ' target=top>'/ 
      if p(v800^d) then v800^d else v800^* fi 

      '</a><br>' 
    fi/)/ 


Note que en este ejemplo se ha definido con dos subcampos el campo que almacena la imagen. En el primer subcampo se coloca el nombre del archivo y en el segundo subcampo se coloca la descripción del mismo, de forma tal que en formato de despliegue se muestra este último subcampo.

Sugerencias para configuración del apache

(Cortesía de Egbert de Smet)

Lo que se puede hacer opcionalmente es crear un 'alias' en la configuración del Apache, p.e.

    Alias /docs/ "/ABCD/www/bases/"
    <Directory "/ABCD/www/bases/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    

y referenciar a las imágenes en el PFT como

lo que significa realmente : /ABCD/www/bases/experts/,v20 (ver el ejemplo de la b.d. 'experts' en ABCD2.0b).


Algunas consideraciones importantes acerca del almacenamiento de documentos digitales

  1. Planifique la estructura de carpetas y subcarpetas que va a utilizar para organizar el almacenamiento de los documentos digitales. Recuerde que una vez incluída la ruta absoluta en el registro de la base de datos, tendrá que re-editar los mismos para cambiar dichas rutas.
  2. Determine si va a tener muchos documentos digitales almacenados. Si este es el caso, no conviene colocar todos los archivos en una misma carpeta. Tal vez pueda considerar una estructura para intentar distribuir equitativamete los documentos entre las carpetas. Mientras mayor sea el número de archivos colocados en una carpeta, también mayor será el tiempo necesario para localizarlos, y, en consecuencia, desplegados.
  3. En lo posible, cree la carpeta de los documentos digitales fuera de la raíz del servidor. #Evalúe la posibilidad de utilizar un repositorio, tal como se explica en la presentación Repositorios Institucionales y su interoperabilidad con ABCD