如何将驻留在计算机上的XML文件(让我们称之为工作站)上传到另一台计算机( server )上运行的BaseX服务器上?
要将XML文件上传到工作站上的BaseX服务器,我使用
basexclient -n localhost -d -w -c "CREATE DATABASE ${db_name} ${file}"
当主机名从localhost
更改为server
时,此命令将失败并显示
org.basex.core.BaseXException: Resource "[complete FILE path]" not found.
IIUC,发生错误是因为此命令本身不上传XML文件,而只是要求服务器从路径${file}
读取它。然后该命令失败,因为服务器上没有${file}
,但仅在工作站上。
我应该使用什么命令将XML文件上传到远程服务器?
(显然没有将文件复制到服务器,然后在服务器上本地执行命令。)
答案 0 :(得分:1)
假设-n表示您似乎使用它的意思,并且本地客户端实际上可以与远程服务器通信,并且假设您的XML文档是一个独立的文档,我会尝试像以下(未测试),将$ server,$ dbname,$ file和$ baseurl定义为环境变量:
(echo CREATE DATABASE $ {dbname}; echo ADD TO $ {baseurl}; cat $ {file}; echo EXIT)| basexclient -n myserver -d -w
但是否则我会使用BaseX HTTP服务器并使用curl或wget将带有文件的PUT请求发送到地址http://myserver.example.org:8984/webdav/mydb/myfile.xml
(当然,如果需要,我会多次使用curl来制作数据库,然后向其添加数据)。