stardog data add command seems to take the assumption that if the connection is to localhost, then it may use server-side file I/O (
--server-side). This assumption may be false in containerization scenarios, e.g. when running Stardog using Docker Desktop, or when accessing a remote Stardog via an SSH proxy (e.g.
In the below example, I am connecting to a remote Stardog server using SSH local port forwarding. The error one sees in this scenario is:
stardog data add http://localhost:5820/mydatabase myfile.ttl Adding data from file: myfile.ttl An error occurred adding RDF to the index: /Users/eron/myproject/myfile.ttl
On the server, the error message indicates that the CLI attempted to use server-side I/O:
ERROR 2018-08-05 18:29:10,709 [stardog-user-2] com.stardog.http.server.undertow.ErrorHandling:writeError(138): Unexpected error on the server com.complexible.stardog.db.DatabaseException: An error occurred adding RDF to the index: /Users/eron/myproject/myfile.ttl ... Caused by: java.nio.file.NoSuchFileException: /Users/eron/myproject/myfile.ttl ...
The only workaround that I have found is to use an alias for
mystardog. This reveals that the CLI varies its behavior based on the connection URI. May I suggest that the CLI not make the assumption of server-side I/O when presented with an absolute URI?