การเพิ่ม Coveragestore ใหม่ใน Workspace ที่แน่นอนโดย REST


9

ดังนั้นสิ่งที่เรียบง่าย แต่ดูเหมือนว่าฉันจะไม่สามารถใช้งานได้! ฉันกำลังพยายามเพิ่มไฟล์ข้อมูลแรสเตอร์ (GeoTIFF) ลงใน geoserver ผ่าน REST API โดยใช้ curl บน linux 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

มันถูกสร้างขึ้นอย่างถูกต้องตามที่แสดงโดยผู้ดูแลระบบ UI ของ Geoserver แต่เมื่อฉันพยายามเพิ่มใบปะหน้าให้กับพื้นที่ทำงานนั้นโดยการดำเนินการ

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"

แม้ว่ามันจะโหลดถูกต้อง แต่มันจะเข้าสู่เวิร์กสเปซเริ่มต้นโดยตรงซึ่งไม่ใช่สิ่งที่ฉันต้องการมันมีวิธีกำหนดพื้นที่ทำงานที่ฉันต้องการหรือไม่? ฉันคิดว่ามันเพียงพอแล้วโดยการกล่าวถึงใน URL ที่ฉันชี้ไปที่ restRIba ของพื้นที่ทำงานของ URI แต่ดูเหมือนว่าจะไม่สนใจมัน

ขอบคุณสำหรับความช่วยเหลือของคุณ :-)

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

มันควรสร้างใบปะหน้าเรียกว่า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"


ตรวจสอบและไม่ฉันทำตามคำขออย่างถูกต้อง จับได้ดีฉันจะแก้ไขคำถาม :) (ฉันรู้สึกโล่งใจไม่ใช่อย่างนั้นฉันจะรู้สึกละอายใจ!)
Mikel G. Gainza

1
อย่างน้อยปัญหาของคุณจะได้รับการแก้ไข ;-) อัปเดตคำตอบของฉัน ฉันหวังว่ามันจะทำงานตอนนี้
RK

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: การเพิ่ม shapefile ที่มีอยู่"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.