我一直在运行带有封闭端口的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数据库。但我不确定)
答案 0 :(得分:1)
一些选项:
以下是一些选项:
1 /使用TDB工具离线构建数据库,然后在该TDB数据库上启动服务器只读。
2 /喜欢(1)但是使用--update来构建持久数据库,然后停止服务器,并在没有--update的情况下重新启动。该数据库现在是只读的。 --update会影响可用的服务,并且不会以任何其他方式影响数据。
拥有持久数据库具有巨大的优势,您无需重新加载数据即可启动和停止服务器。
3 /使用Web服务器将查询请求传递给fuseki服务器,并限制Fuseki服务器仅与localhost通信。您可以从本地计算机更新,外部人员可以。
4 /使用Fuseki2并调整安全设置以仅允许从localhost更新,但可以从任何地方进行查询。
您无法更新Fuseki目前正在服务的TDB数据库。