【问题标题】:What is the underlying database being used by Crafter CMS 3.0 or later?Crafter CMS 3.0 或更高版本使用的底层数据库是什么?
【发布时间】:2018-02-12 10:06:58
【问题描述】:

AFAIK Crafter CMS 3.0 版之前使用 Alfresco 作为存储库,而后者又使用 RDBMS 数据库作为存储元数据的底层数据库。它说 Crafter CMS 3.0 使用 git 作为存储库。

我的应用程序将涉及大量图像文件以及元数据,我假设图像文件存储在文件系统中,元数据存储在 Crafter CMS 3.0 的底层数据库中。

还有什么特别的原因,crafter CMS 3.0 选择不使用 JCR/Jackrabbit 作为 Magnolia 和 Hippo CMS 正在做的存储库?

【问题讨论】:

    标签: git content-management-system jcr crafter-cms


    【解决方案1】:

    Crafter CMS 是一个解耦的 CMS,这意味着有一个独立的创作系统和交付系统。在 Crafter CMS 的情况下,它们分别是 Crafter Studio 和 Crafter Engine。

    直到并包括 2.5 版,Crafter Studio 使用 Alfresco ECM 作为其主要内容存储库,并且正如您正确指出的那样,从 3.0 版开始,Git 成为持久性存储库。 Crafter Engine 始终使用文件系统,从不依赖 RDBMS 或 ECM。 Solr 用于搜索,Solr 在创作和交付中运行,内容通过 Crafter Deployer 在那里建立索引。

    值得注意的是,除了 Git 之外,Crafter Studio 3.0 确实使用小型嵌入式 RDBMS 模式 (MariaDB) 来维护对象状态和其他与 CMS 相关的活动。但是,如果需要,可以根据 Git 状态重建该数据库。

    关于基于图像和视频的应用程序:最佳做法是在 Crafter 中对这些资产进行建模,但依赖于外部存储(如通过 CMIS 的 S3、Box、Alfresco ——所有这些都是本机支持的,但所有其中是可选的)用于二进制文件,但将元数据保留在 Crafter CMS 中。这意味着内容元数据在 Crafter Engine 中可用(通过 Groovy、FreeMarker 或 Java,通过加载描述符 (XML) 或查询 Solr),并且可以根据交付需要对二进制文件进行转换、转码。

    话虽如此,如果您愿意,您仍然可以将内容对象(XML + 二进制)直接存储到 Git 中。

    因此,为了尝试在更高层次上回答您的问题:Crafter CMS 使用 XML 来存储内容和元数据,该 XML 可以指向二进制资产(创建关联)。 XML 以图形方式建模以生成表单,表单呈现为内容的叠加层,供内容作者创建内容并最终在 Git 中生成 XML。 XML 由 Solr 通过 Crafter Deployer 编制索引(在创作和交付中运行),并且可供 Crafter Engine 使用(因此您的应用程序是用 Groovy 和 FreeMarker(或 Java,如果您真的想要的话)编写的)。

    不使用 JCR 的原因太多,无法在此处列出 - Git 提供了更好的开发人员工作流程、性能、可扩展性、devops 支持等。请参阅 Crafter Software 网站上的#NoJCR 录制的网络研讨会,其中涵盖了一些推理.另一个即时资源是架构概述:http://docs.craftercms.org/en/3.0/developers/architecture.html

    【讨论】:

    • 所以我收集到图像标题、图像描述等元数据存储在 git repo 的 XML 文件中,而二进制图像文件存储在文件系统中的本机文件中。计划在作者上传图像并输入图像元数据的创作端使用 Crafter CMS。但在交付方面,我有自己的 spring 应用程序,它将通过 redis 从缓存中提供图像。我必须弄清楚如何将图像文件和元数据从创作端复制/部署到交付端,而不必在交付端使用 Crafter 引擎。
    • 在交付节点上使用 Crafter Deployer。您不必使用引擎。这意味着:使用init-site.sh 在交付节点上配置目标,它会将站点下拉到磁盘(本地 Git 存储库),然后您可以从本地磁盘拉资产,/site/*.xml 作为描述符, 和 /static-assets/* 用于二进制文件。您可以进一步配置 Deployer 以使 Redis 缓存失效等(很像它使 Engine 的缓存失效的方式)。 (检查处理器流水线配置。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多