Додавання REST нового магазину покриття в певний робочий простір


9

Отже, проста справа, як здається, але я не можу, здається, змусити її працювати! Я намагаюся додати файл растрових даних (GeoTIFF) до геосервера через API REST, використовуючи curl на linux. REST API є працює, так як я створив нове робоче простір , використовуючи його:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
 -d '<workspace><name>restProba</name></workspace>' \
 http://localhost:8080/geoserver/rest/workspaces

Він правильно створений, як показано адміністратором інтерфейсу Geoserver, але коли я намагаюся додати сховище до цього робочого простору, виконавши

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

незважаючи на те, що він правильно завантажений, він переходить безпосередньо в робочу область за замовчуванням, яка не є тією, в яку я його хочу. Чи є спосіб визначити, в якій робочій області я хочу його? Я подумав, що цього достатньо, згадуючи його в URL-адресі, де я вказую на URI робочої області restProba, але, здається, це опускати.

Спасибі за вашу допомогу :-)

pd: новачок із геосервером, я намагався шукати це, але або я не використовую правильних критеріїв пошуку, я дурень, або це просто занадто просто, щоб хто-небудь просив, що я навіть дурень, щоб його запитати: p

Відповіді:


5

Можливо, ви можете спробувати це, створивши робочу область:

curl -u admin:geoserver -v -XPOST -H 'Content-Type: application/xml' \
     -d '<coverageStore><name>int_dec</name><workspace>restProba</workspace>  
         <enabled>true</enabled></coverageStore>' \
         http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores

Він повинен створити магазин охоплення, який називається int_decв restProbaробочій області ::

Потім можна посилатися на файл GeoTIFF:

curl -u admin:geoserver -v -XPUT -H 'Content-type: text/plain' \
     -d 'file:/$home/int_dec.tif' \
      http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff?configure=first\&coverageName=int_dec

Я думаю, що ваша проблема - це відсутність '

Ваш запит:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

Це повинно було бути:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"


Перевірив це і немає, я правильно зробив запит. Добре
впіймаю тхо

1
Принаймні ваша проблема буде вирішена ;-) Оновлена ​​моя відповідь. Я сподіваюся, що це спрацює і зараз.
РК

1

Щоб додати сховище GeoTIFF та шару з тим самим іменем за один крок, ви можете виконати:

$ curl -v -u admin:geoserver -XPUT -H "Content-type: text/plain"
       -d "file:///path_to_directory/int_dec.tif"
       http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff

Детальніше у "Прикладах конфігурації REST: Додавання існуючого файлу форми" .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.