Есть ли у Liferay база данных, которая указывает на физическое содержимое, такое как pdf, по имени?

Я сделаю это настолько явным, насколько смогу, в надежде, что кто-то может понять и указать мне правильное направление. Я не являюсь, повторяю НЕ, разработчиком Liferay. Вместо этого мне поручили использовать Splunk для использования журналов веб-доступа Liferay и создания панелей мониторинга активности веб-сайтов из этих журналов. Разработчики Liferay, кажется, не совсем понимают, что мне нужно делать, и они работают в другой части страны, поэтому я не могу просто сесть с ними. Итак, вот примерная структура и содержание веб-сайта.

FordCarMaintenance.html
    Escort
        EscortEngineRemoval.pdf
        EscortEnginetuneUp.pdf
        EscortTransmissionDraining.pdf
        ReplaceEscortRadiator.flv
        EscortContactList.html
    Ranger
        RangerAlignmentCheckList.pdf
        RoadHazardandTireWear.pdf
        EngineMountReplacement.pdf
        RangerTransmissionFramusReplacement.pdf

Журналы Liferay будут иметь ссылку на Escort и Ranger, но не будут иметь прямой ссылки на файлы pdf, flv и html. Моя работа, однако, состоит в том, чтобы сообщить моему конечному пользователю, сколько раз эти отдельные файлы pdf, flv и html были просмотрены. Ключевое поле в журнале Liferay будет выглядеть примерно так:

/group/escort/1266711/maintenance/engine
/group/escort/1266719/maintenance/engine 
/group/escort/1266413/maintenance/transmission  
/group/escort/1266700/maintenance/radiator  
/group/escort/1266695/maintenance/contacts  
/group/ranger/6569235/maintenance/alignment  
/group/ranger/6569239/maintenance/hazard  
/group/ranger/6569351/maintenance/engine  
/group/ranger/6569772/maintenance/transmission

Обратите внимание, что под последней частью «дружественного URL», такой как двигатель, может быть несколько страниц, связанных с двигателем (1266711, 1266719). Насколько я понимаю, число между косыми чертами указывает на поле в таблице (таблицах) базы данных, которое может фактически идентифицировать физический файл по имени и расширению, к которому пользователи обращаются под типом escort/maintenance/engine. Я полагаю, что у Liferay есть таблица базы данных с именем journalArticle, в которой есть эта информация. Итак, теперь мои вопросы:

Действительно ли таблица journalArticle содержит эту информацию, так что запрос к таблице ищет:

ID статьи = 1266711

вернет EscortEngineRemoval.pdf?

Или есть другая таблица или набор таблиц, в которых есть эти данные? Я хоть близко?

Спасибо.


person kjmatt    schedule 06.09.2016    source источник


Ответы (1)


То, что вы ищете, это таблица DLFileEntry, в ней есть столбец fileEntryId, который также является номером, на который вы ссылаетесь, и еще один столбец title, который содержит имя файла. Структура таблицы такова:

CREATE TABLE `DLFileEntry` (
  `uuid_` varchar(75) DEFAULT NULL,
  `fileEntryId` bigint(20) NOT NULL,
  `groupId` bigint(20) DEFAULT NULL,
  `companyId` bigint(20) DEFAULT NULL,
  `userId` bigint(20) DEFAULT NULL,
  `userName` varchar(75) DEFAULT NULL,
  `createDate` datetime DEFAULT NULL,
  `modifiedDate` datetime DEFAULT NULL,
  `classNameId` bigint(20) DEFAULT NULL,
  `classPK` bigint(20) DEFAULT NULL,
  `repositoryId` bigint(20) DEFAULT NULL,
  `folderId` bigint(20) DEFAULT NULL,
  `treePath` longtext,
  `name` varchar(255) DEFAULT NULL,
  `extension` varchar(75) DEFAULT NULL,
  `mimeType` varchar(75) DEFAULT NULL,
  `title` varchar(255) DEFAULT NULL,
  `description` longtext,
  `extraSettings` longtext,
  `fileEntryTypeId` bigint(20) DEFAULT NULL,
  `version` varchar(75) DEFAULT NULL,
  `size_` bigint(20) DEFAULT NULL,
  `readCount` int(11) DEFAULT NULL,
  `smallImageId` bigint(20) DEFAULT NULL,
  `largeImageId` bigint(20) DEFAULT NULL,
  `custom1ImageId` bigint(20) DEFAULT NULL,
  `custom2ImageId` bigint(20) DEFAULT NULL,
  `manualCheckInRequired` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`fileEntryId`),
  UNIQUE KEY `IX_5391712` (`groupId`,`folderId`,`name`),
  UNIQUE KEY `IX_ED5CA615` (`groupId`,`folderId`,`title`),
  UNIQUE KEY `IX_BC2E7E6A` (`uuid_`,`groupId`),
  KEY `IX_4CB1B2B4` (`companyId`),
  KEY `IX_772ECDE7` (`fileEntryTypeId`),
  KEY `IX_8F6C75D0` (`folderId`,`name`),
  KEY `IX_F4AF5636` (`groupId`),
  KEY `IX_93CF8193` (`groupId`,`folderId`),
  KEY `IX_29D0AF28` (`groupId`,`folderId`,`fileEntryTypeId`),
  KEY `IX_43261870` (`groupId`,`userId`),
  KEY `IX_D20C434D` (`groupId`,`userId`,`folderId`),
  KEY `IX_D9492CF6` (`mimeType`),
  KEY `IX_64F0FE40` (`uuid_`),
  KEY `IX_31079DE8` (`uuid_`,`companyId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
person KlajdPaja    schedule 06.09.2016
comment
Большое спасибо. Я передам это своим разработчикам Liferay, чтобы узнать, что они скажут. У меня такое чувство, что они не знают внутренностей Liferay, но знают только, как делать вызовы API. Если они смогут предоставить мне то, что мне нужно, из этой таблицы, я вернусь, чтобы принять этот ответ. - person kjmatt; 06.09.2016
comment
Если они откажутся смотреть базу данных и предпочтут API: поблагодарите их за их уверенность в завтрашнем дне. База данных может измениться в любое время, и если они знают внутренности базы данных, у них может возникнуть соблазн также записать в базу данных — обычно это рано или поздно приводит к катастрофе. Если повезет: раньше. Также существует API для DLFileEntry. SOAP, JSONWS, Java: все доступно для вас - person Olaf Kock; 07.09.2016