如何启动Apache Jena Fuseki作为只读服务(但最初也用数据填充它)

时间:2015-03-23 16:03:04

标签: fuseki

我一直在运行带有封闭端口的Apache Jean Fuseki。目前我的其他应用程序可以通过localhost访问它。

按照他们的指示,我按如下方式开始这项服务:

./fuseki-server --update --mem /ds

这在内存数据库中创建和updatable

我目前知道如何向此数据库添加数据的唯一方法是使用内置的http请求工具:

./s-post http://localhost:3030/ds/data

这很好用,除了现在我想公开这个端口,以便其他人可以查询数据集。但是,我不想让人们更新或更改数据库,我只是希望他们能够使用和查询我最初加载到数据库中的信息。

根据文档(http://jena.apache.org/documentation/serving_data/),我可以通过在没有更新选项的情况下启动它来使数据库成为只读。

  

如果服务器已启动,则无需访问控制即可更新数据   使用--update参数。如果没有那个参数启动,数据就是   只读的。

但是当我以这种方式启动数据库时,我无法再填充初始数据集。

所以,我的问题:我如何启动内存中的Fuseki数据库,我可以使用我的原始数据集进行填充,但随后禁止进一步的http更新。

(我的猜测是我需要另一种方法来填充不使用http协议的Fueseki数据库。但我不确定)

1 个答案:

答案 0 :(得分:1)

一些选项:

以下是一些选项:

1 /使用TDB工具离线构建数据库,然后在该TDB数据库上启动服务器只读。

2 /喜欢(1)但是使用--update来构建持久数据库,然后停止服务器,并在没有--update的情况下重新启动。该数据库现在是只读的。 --update会影响可用的服务,并且不会以任何其他方式影响数据。

拥有持久数据库具有巨大的优势,您无需重新加载数据即可启动和停止服务器。

3 /使用Web服务器将查询请求传递给fuseki服务器,并限制Fuseki服务器仅与localhost通信。您可以从本地计算机更新,外部人员可以。

4 /使用Fuseki2并调整安全设置以仅允许从localhost更新,但可以从任何地方进行查询。

您无法更新Fuseki目前正在服务的TDB数据库。