Я использую cURL для выполнения команд с использованием интерфейса REST BaseX, например:
curl http://localhost:8984/rest/?command=repo+list
Существуют также команды для управления репозиторием модуля XQuery . Я особенно заинтересован в REPO INSTALL для установки пакета. Можно ли как-то выполнить эту команду, используя cURL и интерфейс REST, но без наличия пакета на целевом сервере? Я хочу предоставить файл в теле запроса cURL, аналогично добавлению ресурса в базу данных ( source ), который выглядит следующим образом:
curl -i -X PUT -T "etc/xml/factbook.xml" "http://localhost:8984/rest/factbook"
Попытка
curl -i -X PUT -T "/tmp/foo.xar" http://localhost:8984/rest/?command=repo+install
Дает мне
HTTP/1.1 404 Not Found
Content-Type: text/plain;charset=UTF-8
Content-Length: 18
Connection: close
Server: Jetty(9.4.18.v20190429)
No path specified.
Добавление -H "Content-Type: application/x-xar"
тоже не помогает.
И замена PUT на POST дает мне
HTTP/1.1 100 Continue
HTTP/1.1 400 Bad Request
Date: Tue, 03 Mar 2020 09:53:21 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 46
Server: Jetty(9.4.18.v20190429)
"" (Line 1): Content is not allowed in prolog.