Dodanie nowego Coveragestore w określonym obszarze roboczym przez REST

9

Tak więc wydaje się prosta rzecz, ale nie mogę sprawić, by działała! Próbuję dodać plik danych rastrowych (GeoTIFF) do geoservera za pomocą interfejsu API REST, używając curl na systemie Linux. REST API jest pracy, bo stworzył nowy obszar roboczy używając go:

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

Jest poprawnie utworzony, jak pokazuje interfejs użytkownika Geoservera, ale kiedy próbuję dodać coveragestore do tego obszaru roboczego, wykonując

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"

mimo że jest poprawnie załadowany, przechodzi bezpośrednio do domyślnego obszaru roboczego, który nie jest tym, w którym chcę go mieć. Czy istnieje sposób zdefiniowania, w którym obszarze roboczym chcę go mieć? Pomyślałem, że to wystarczy, wspominając o tym w adresie URL, pod którym wskazuję identyfikator URI przestrzeni roboczej programuProba, ale wydaje się, że go pomija.

Dzięki za pomoc :-)

pd: nowicjusz z geoserver, próbowałem tego szukać, ale albo nie używam właściwych kryteriów wyszukiwania, jestem głupcem, albo po prostu jest zbyt proste, aby ktokolwiek zapytał, że jestem nawet głupszym, by o to zapytać: p

Mikel G. Gainza
źródło

Odpowiedzi:

5

Może możesz spróbować po utworzeniu obszaru roboczego:

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

Powinien utworzyć coveragestore wywoływany int_decw obszarze restProbaroboczym:

Następnie możesz odwołać się do pliku 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

Myślę, że twój problem zaginął '

Twoja prośba była:

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"

Powinno być:

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"

RK
źródło
Sprawdziłem to i nie, właściwie zrobiłem prośbę. Dobrze złapany, poprawię pytanie :) (jakby mi ulżyło, że to nie to, będę upokorzony!)
Mikel G. Gainza
1
Przynajmniej twój problem zostanie rozwiązany ;-) Zaktualizowałem moją odpowiedź. Mam nadzieję, że teraz zadziała.
RK
1

Aby dodać sklep GeoTIFF i warstwę o tej samej nazwie w jednym kroku, możesz wykonać:

$ 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

Więcej szczegółów w „Przykładach konfiguracji REST: dodawanie istniejącego pliku kształtu” .

Xandriksson
źródło