Aggiunta di un nuovo Coveragestore in un determinato spazio di lavoro tramite REST


9

Quindi, cosa semplice come sembra ma non riesco a farlo funzionare! Sto cercando di aggiungere un file di dati raster (GeoTIFF) al geoserver tramite l'API REST, usando curl su Linux. REST API sta lavorando, da quando ho creato un nuovo spazio di lavoro di usarlo:

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

È stato creato correttamente come mostrato dall'amministratore del Geoserver, ma quando provo ad aggiungere un coveragestore a quello spazio di lavoro eseguendo

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"

anche se è caricato correttamente, va direttamente nello spazio di lavoro predefinito, che non è quello in cui lo voglio. Esiste un modo per definire lo spazio di lavoro in cui lo voglio? Ho pensato che sarebbe bastato menzionarlo nell'URL in cui indico l'URI dell'area di lavoro di RestProba, ma sembra che lo stia omettendo.

Grazie per l'aiuto :-)

pd: novizio con geoserver, ho provato a cercarlo ma o non sto usando i criteri di ricerca corretti, sono un pazzo o è semplicemente troppo semplice per chiunque chieda che sono anche più sciocco per averlo chiesto: p

Risposte:


5

Forse puoi provare questo dopo aver creato l'area di lavoro:

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

Dovrebbe creare un coveragestore chiamato int_decnell'area di restProbalavoro ::

È quindi possibile fare riferimento al file 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

Penso che il tuo problema sia quello mancante '

La tua richiesta era:

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"

Avrebbe dovuto essere:

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"


Controllato e no, ho fatto la richiesta correttamente. Buona cattura, correggerò la domanda :) (sono un po 'sollevato, non sarei stato umiliato!)
Mikel G. Gainza,

1
Almeno il tuo problema sarà risolto ;-) Aggiornato la mia risposta. Spero che ora funzioni.
RK,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.