通过 JAVA,使用 XQuery eval 将文件上传到 MarkLogic Server 文件系统



我有电子书。它包含文本文件和图片。在我的情况下,任何图片都应该不是存储在数据库中,而是存储在同一个 Marklogic 服务器(使用 xdmp:save)的文件系统上。

问:有没有办法使用 marklogic-xccjava API将图片(或任何二进制资产)上传到 Marklogic Server文件系统

我已经尝试过com.marklogic.xcc.Session#insertContent,但它将内容上传到数据库,我需要上传到文件系统。

谢谢你的帮助!

大于 1Mb 的二进制文件默认保存在磁盘上,而不是保存在 MarkLogic 数据库中。不过,它保存在森林数据中,它可以具有文档属性,并且包含在备份等中。我建议坚持使用,而不是从普通文件系统提供二进制文件,特别是如果您打算通过 MarkLogic 无论如何获取它们。

您可以在应用程序开发人员指南的"使用二进制文档"一章中阅读有关此内容的更多信息。

哼!

外部二进制文件用于您声明的目的。 https://docs.marklogic.com/xdmp:external-binary 它们在数据库中具有仅元数据表示形式,即您明确指定的实际"文件",可以是本地文件、http 或 aws S3 文件。 请注意,这样做的结果是 MarkLogic 不会以任何方式"管理"实际文件或内容,而只是对它的引用。由您来确保文件可以在所有服务器上访问,备份,复制等。 文件的内容不是事务性的、可搜索的、索引的。 事实上,它不必实际存在,或者可以表示"稀疏"后端存储。

建议与 grtjn 相同,除非绝对必要,否则使用二进制文件而不是外部二进制文件。 二进制文件具有数据库的所有事务、备份和分布式功能,以及"只是一个普通的旧二进制文件"的所有功能——除了你必须使用 ML API 来访问它。

相关内容