RESTによって特定のワークスペースに新しいCoveragestoreを追加する


9

簡単なことのようですが、うまく機能しないようです。Linuxでcurlを使用して、REST APIを介してラスターデータファイル(GeoTIFF)をジオサーバーに追加しようとしています。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の管理UIに示されているように正しく作成されていますが、次のコマンドを実行してそのワークスペースにカバレッジストアを追加しようとすると

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"

正しく読み込まれていても、デフォルトのワークスペースに直接移動します。これは、希望するワークスペースではありません。希望するワークスペースを定義する方法はありますか?restProbaのワークスペースURIを指すURLで言及することで十分だと思いましたが、省略されているようです。

ご協力いただきありがとうございます :-)

pd:geoserverの初心者、私はこれを検索してみましたが、正しい検索基準を使用していないか、愚か者であるか、または私がそれを尋ねるのがだまされていると誰もが尋ねるのは簡単すぎます: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

ワークスペースで呼び出されるcoveragestoreを作成する必要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
少なくともあなたの問題は解決されます;-)私の答えを更新しました。私はそれが今うまくいくことを願っています。
RK

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構成の例:既存のシェープファイルの追加」を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.