Docs / Utvecklare / Filer och jobb

Filer och jobb

Ladda upp en fil för att skapa eller ersätta ett lager, exportera GeoPackage och följ bakgrundsjobbet tills det är klart.

Ladda upp en fil och skapa ett lager#

  1. Begär en uppladdningsadress

    Anropa POST /v1/uploads med filnamn, storlek i byte och innehållstyp, som i exemplet nedan. Använd en read_write-nyckel på en roll som får skapa innehåll. Svaret innehåller uploadId, url, expiresAt och maxBytes.

  2. Ladda upp filen

    Skicka filen med PUT till url och använd samma Content-Type. Den signerade adressen ger åtkomst; lägg inte till din OrbGIS-bearer-header. Ladda upp före expiresAt.

  3. Skapa samlingen

    Anropa POST /v1/collections med uploadId, title, layerName och itemType. Lägg till sourceLayer för en fil med flera lager, sourceSrid vid behov, eller csv med latColumn och lonColumn för CSV-koordinater.

  4. Vänta tills jobbet är klart

    Svaret är 202 med job. Fråga GET /v1/jobs/{id} eller använd jobb-webhooks. Fortsätt medan job.status är queued eller running och avsluta vid done, failed eller cancelled. Efter ett lyckat jobb anger job.result innehållsobjektet och samlingen.

Exempel på kropp för POST /v1/uploads:

{"filename": "roads.gpkg", "size": 1048576, "contentType": "application/geopackage+sqlite3"}

Ange filens faktiska storlek. Använd det returnerade uppladdnings-id:t i kroppen för POST /v1/collections:

{"uploadId": "UPLOAD_ID_FROM_UPLOAD_RESPONSE", "title": "Roads", "layerName": "roads", "itemType": "feature_service"}
Obs

Standardgränsen för API-uppladdningar är 50 MiB. Kontrollera maxBytes; en fil över den konfigurerade gränsen ger 413 upload_too_large. GeoPackage, zippad Shapefile, GeoJSON och CSV är några av formaten som stöds. Se Ladda upp data för formatkrav.

Tips

Upprepas skapandet med samma uploadId returneras det befintliga jobbet med 200, utan att ett dubbelt lager skapas. Om uppladdningsadressen hinner gå ut innan filen skickats begär du en ny.

Läsa eller avbryta ett jobb#

Jobbsvar har ett omslutande job-fält. Läs job.status, job.phase, job.progress, job.error och job.result. Bara integrationen eller personen som startade jobbet kan se det. POST /v1/jobs/{id}/cancel begär att ett köat eller pågående inläsningsjobb avbryts.

Exportera ett lager#

Anropa POST /v1/collections/{id}/export med {"format":"gpkg"} och en read_write-nyckel. Följ det returnerade jobbet. När job.status är done hämtar du filen från job.result.downloadUrl. Vid failed eller cancelled läser du i stället job.error.

Den signerade nedladdningsadressen gäller i tio minuter och förnyas när jobbet läses igen. Filen innehåller alla attribut och objectid i lagringssystemet och sparas i sju dagar. För närvarande stöds bara export till GeoPackage.

En export kan vara aktiv per integration. Ett nytt exportanrop medan en export är köad eller pågår ger det aktiva jobbet med 200. Kontrollera därför dess samling innan du använder resultatet.

Hålla ett dataset uppdaterat#

Skapa samlingen första gången och spara dess collectionId. Vid senare körningar laddar du upp en ny fil och anropar /v1/collections/{id}/replace. Id, symbolsättning och kartkopplingar behålls. Se Skriva objekt för ersättning och ändringar av enskilda objekt.