0

Web サーバーに geoserver がインストールされており、GeoTIFF レイヤーを作成したいと考えています。ローカル マシンを介して geoserver にアクセスしており、GeoTIFF ファイルがローカル マシンに存在しています。問題は、ジオサーバーが指定したファイルのパスを認識しないため、レイヤーを作成できないことです。

以下は私のcurlコマンドです。

exec('curl -u admin:geoserver -v -XPUT -H "Content-type:image/tiff" --data-binary " http://192.168.1.2:82/TrueMarble.32km.1350x675.tif " " http ://107.167.186.125:8080/geoedge/rest/workspaces/geoedge/coveragestores/st_tif_layer_8/file.geotiff " ');

カバレッジは作成されますが、そこにレイヤーは作成されません。ジオサーバーがインストールされているサーバーと同じサーバーにある場合、IP アドレスを使用してファイルにアクセスできません。

4

1 に答える 1

0

あなたがやろうとしていることは可能ですが、curl 構文が間違っていると思います。私は次のようなものを使用します:

curl -u admin:geoserver -v -XPUT -H "Content-type:image/tiff" --data-binary @TrueMarble.32km.1350x675.tif "http://107.167.186.125:8080/geoedge/rest/workspaces/geoedge/coveragestores/st_tif_layer_8/file.geotiff"

ファイルは名前で参照されます (ローカルであるため)。それ以外の場合、curl はファイル名をデータとして送信するだけです。

カールのマニュアルページから:

文字 @ でデータを開始する場合、残りはデータを読み取るファイル名にする必要があります。または、curl に標準入力からデータを読み取らせたい場合は、. 複数のファイルを指定することもできます。'foobar' という名前のファイルからのデータの投稿は、 --data @foobar で行われます。--data がそのようなファイルから読み取るように指示されると、キャリッジ リターンと改行が削除されます。

于 2015-11-30T09:02:18.560 に答える