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:
.
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:
- En una carpeta colocada en la raíz del servidor: directorio htdocs (linux - apache) o wwwroot (windows - IIS)
- 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:
.
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.
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:
- Almacenar el documento en el servidor
- 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:
- En la carpeta bases (externa a la raíz del servidor) En la carpeta htdocs (bajo la raíz del servidor)
- 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:
Subir archivos al servidor Seleccionar archivos del servidor
Subir archivos al servidor
Se presenta la siguiente hoja de entrada:
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
- 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 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
*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
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
- 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.
- 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.
- 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
Vinculación de documentos digitales que están fuera de la raiz del servidor
ROOT=ruta_a_la_carpeta_de_documentos_digitales/
El parámetro ROOT indica la ruta completa a partir de la cual se van a almacenar los documentos digitales
ej:
ROOT=/bases/biblo/documentos/
Ver: Almacenamiento de documentos digitales fuera de la raiz del servidor
También contiene una serie de parámetros que permiten redefinir a nivel de base de datos los siguientes parámetros ya establecidos en el config.php:
El acceso a los parámetros adicionales por base de datos se realiza a través del script config_extended.php colocado en la misma carpeta que el config.php.