通过java使用xquery eval将文件上传到marklogic服务器文件系统

ezykj2lf  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(349)

我有电子书。它包含文本文件和图片。在我的例子中,任何图片都应该是不存储在数据库中而是存储在同一marklogic服务器的文件系统中的文件(使用xdmp:save).
问:有没有办法使用marklogicxccjavaapi将图片(或任何二进制资产)上传到marklogic服务器文件系统?
我尝试过com.marklogic.xcc.session#insertcontent,但它将内容直接上传到数据库,我需要上传到文件系统。
谢谢你的帮助!

omtl5h9j

omtl5h9j1#

默认情况下,大于1mb的二进制文件保存在磁盘上,而不是保存在marklogic数据库中。但它保存在林数据中,可以具有文档属性,并包含在备份等中。我建议坚持从普通文件系统中提供过多的二进制文件,特别是当您打算通过marklogic获取它们时。
您可以在《应用程序开发人员指南》(ApplicationDeveloper'sGuide)中的“使用二进制文档”(WorkingwithBinary documents)一章中阅读更多关于这方面的内容。
嗯!

tvmytwxo

tvmytwxo2#

外部二进制文件用于您声明的目的。https://docs.marklogic.com/xdmp:external binary它们在数据库中有一个仅元数据的表示,即您显式指定的实际“文件”,可以是本地文件、http或aws s3文件。注意,这样做的结果是marklogic不会以任何方式“管理”实际的文件或内容,而只是对它的引用。由您来确保文件在所有服务器上都可以访问、备份、复制等。文件的内容不是事务性的、可搜索的、索引的。事实上,它不必实际存在,也可以表示“稀疏”后端存储。
建议和grtjn一样,使用二进制文件而不是外部二进制文件,除非您必须这样做。二进制文件具有数据库的所有事务、备份和分布式功能,以及“只是一个普通的旧二进制文件”的所有功能,但您必须使用mlapi来访问它。

相关问题