0

我的 web 服务器中安装了 geoserver,我想创建一个 GeoTIFF 图层。我正在通过我的本地机器访问 geoserver,并且我有 GeoTIFF 文件驻留在我的本地机器中。问题是 geoserver 无法识别我指定的文件的路径,因此无法为我创建图层。

下面是我的 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 手册页:

如果您以字母 @ 开始数据,则其余部分应该是从中读取数据的文件名,或者 - 如果您希望 curl 从标准输入中读取数据。也可以指定多个文件。因此,从名为 'foobar' 的文件中发布数据将使用 --data @foobar 来完成。当 --data 被告知从这样的文件中读取时,将删除回车符和换行符。

于 2015-11-30T09:02:18.560 回答