Crafter CMS 3.0 或更高版本使用的基础数据库是什么?
What is the underlying database being used by Crafter CMS 3.0 or later?
3.0 版之前的 AFAIK Crafter CMS 使用 Alfresco 作为存储库,后者又使用 RDBMS 数据库作为存储元数据的基础数据库。它说 Crafter CMS 3.0 正在使用 git 作为存储库。
我的应用程序将涉及大量图像文件和元数据,我假设图像文件存储在文件系统中,元数据存储在 Crafter CMS 3.0 的基础数据库中。
此外,crafter CMS 3.0 选择不使用 JCR/Jackrabbit 作为像 Magnolia 和 Hippo CMS 那样的存储库有什么特别的原因吗?
Crafter CMS 是一个分离的 CMS,这意味着有一个独立的创作系统和一个交付系统。对于 Crafter CMS,它们分别是 Crafter Studio 和 Crafter Engine。
直到 2.5 版(包括 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 中对这些资产进行建模,但要依赖外部存储(例如 S3、Box、通过 CMIS 的 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
3.0 版之前的 AFAIK Crafter CMS 使用 Alfresco 作为存储库,后者又使用 RDBMS 数据库作为存储元数据的基础数据库。它说 Crafter CMS 3.0 正在使用 git 作为存储库。
我的应用程序将涉及大量图像文件和元数据,我假设图像文件存储在文件系统中,元数据存储在 Crafter CMS 3.0 的基础数据库中。
此外,crafter CMS 3.0 选择不使用 JCR/Jackrabbit 作为像 Magnolia 和 Hippo CMS 那样的存储库有什么特别的原因吗?
Crafter CMS 是一个分离的 CMS,这意味着有一个独立的创作系统和一个交付系统。对于 Crafter CMS,它们分别是 Crafter Studio 和 Crafter Engine。
直到 2.5 版(包括 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 中对这些资产进行建模,但要依赖外部存储(例如 S3、Box、通过 CMIS 的 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