我有电子书,里面有文本文件和图片。在我的例子中,任何图片都应该不是存储在数据库中,而是存储在同一个Marklogic中的文件系统上(使用xdmp:save)。
问:是否有办法使用marklogic-xcc java api将图片(或任何二进制资产)上载到Marklogic Server 文件系统
我尝试过com.marklogic.xcc.Session#insertContent,但它直接将内容上传到数据库,并且需要上传到文件系统。
谢谢你的帮助!
发布于 2017-07-14 17:45:15
大于1Mb的二进制文件默认保存在磁盘上,而不是保存在MarkLogic数据库中。虽然它保存在森林数据中,但它可以具有文档属性,并且它包含在备份中等等。我建议坚持这一点,而不是从普通文件系统提供二进制文件,特别是如果您计划通过MarkLogic来获取二进制文件。
您可以在Application‘chapter的处理二进制文档一章中阅读更多有关这方面的内容。
哈哈!
发布于 2017-07-14 19:17:29
外部二进制文件符合您所述的目的。https://docs.marklogic.com/xdmp:external-binary --它们仅在数据库中有元数据表示,您显式指定的实际“文件”可以是本地文件、http或aws S3文件。请注意,这样做的结果是,MarkLogic不以任何方式“管理”实际的文件或内容,而只是对它的引用。你应该确保文件在所有服务器上都是可访问的,备份,复制等等。文件的内容不是事务性的,可搜索的,索引的。实际上,它并不需要实际存在,也可以表示“稀疏”后端存储。
与grtjn一样,建议使用二进制文件,而不是使用外部二进制文件,除非您必须这样做。二进制文件具有数据库的所有事务、备份和分布式功能,以及“只是一个普通的旧二进制文件”的所有功能--但您必须使用ML API才能访问它。
https://stackoverflow.com/questions/45107690
复制相似问题