Entender la actualización del documento [este contenido afecta solo a archivos subidos antes de la versión 7.4]
Para entender los cambios ocurridos en la URL con esta acción, antes debemos de entender cómo crea Liferay las URLs y qué partes la forman:
Este es un ejemplo de URL de un documento:
/documents/20127/38742837/casos-coronavirus-aragon.csv/72414e2d-abde-a1c9-5669-7fde7abc3191?t=1594310266588
Rojo: indica la localización del documento en forma de IDs. Nos indica que se encuentra en la sección de “Documentos y Multimedia”, con el ID de la carpeta 20127 y que a su vez está dentro de otra carpeta con ID: 38742837.
Verde: indica el nombre del documento con su extensión. El título puede ser modificado al actualizar la versión, pero es importante saber que entonces deberemos de utilizar el código alfanumérico que va detrás cuando vayamos a utilizar este documento en una página, ya que, si lo eliminamos de la url, y cambiamos el título se perderá la referencia.
Naranja: identificador del documento. Es un identificador único para cada documento y no debe de cambiar al actualizar el documento. En caso de que eliminemos esta sección de la URL, y no cambiemos el título del documento, siempre nos devolverá la última versión.
Azul: indica en formato timestamp la fecha y hora de la última modificación del documento. Se utiliza para resolver posibles problemas de cacheado.
Ver la última versión de nuestro documento
Un inconveniente de las URLs que generan los documentos es que puede ser almacenado en caché por navegadores, proxies, etc. y aunque el documento puede actualizarse y cargarse la nueva versión, los navegadores puede que no se den cuenta del cambio y no puedan enviar la última versión disponible (utilizarán la versión de caché en su lugar).
Por ello existe un mecanismo para garantizar que cuando se cargue una nueva versión, se entregue el contenido más reciente, sin importar si se almacenó en caché o no.
El mecanismo consiste en agregar un parámetro de marca de tiempo(t) a la url en función de la fecha de modificación de la última versión del archivo. Debido a esto, cuando se carga una nueva versión, la marca de tiempo cambiará y el navegador lo considerará una nueva solicitud y no utilizará el valor de caché.
Ejemplos
URL de la primera versión del documento:
/documents/20127/38742837/casos-coronavirus-aragon.csv/72414e2d-abde-a1c9-5669-7fde7abc3191?t=1594310266588
URL de la segunda versión del documento:
/documents/20127/38742837/casos-coronavirus-aragon.csv /72414e2d-abde-a1c9-5669-7fde7abc3191?t=1593311266545
Al aumentar la versión, el código alfanumérico se mantiene. Si eliminamos de la url el código alfanumérico y el valor de “t”, va a descargar la última versión ya que el título es el mismo.
Si cambiamos el nombre en una tercera versión:
URL de la tercera versión del documento:
/documents/20127/38742837/casos-coronavirus.csv/72414e2d-abde-a1c9-5669-7fde7abc3191?t=1593311266545
Nos devolverá el documento correctamente en su última versión. No importa si tenemos referencias en los contenidos a la URL con el título antiguo, ya que siempre que mantengamos el código alfanumérico, nos descargará la última versión. Esto quiere decir que si por ejemplo tenemos una URL y nos inventamos el título y dejamos el código alfanumérico correctamente, nos descargará la última versión del documento:
/documents/20127/38742837/este-es-un-titulo-inventado.csv/72414e2d-abde-a1c9-5669-7fde7abc3191