Ga naar inhoud

Invoerbestanden downloaden

Zodra invoerbestanden zijn geüpload en voltooid, kunt u ze opnieuw downloaden via de API.

Er wordt van uitgegaan dat u een bundle met voltooide invoerbestanden hebt en de read:bundle-scope hebt.


Het download-endpoint retourneert kant-en-klare ondertekende URL’s. Download bestandsbytes rechtstreeks van CDN/S3 zonder Authorization-header op de GET, hetzelfde patroon dat wordt gebruikt voor het downloaden van scanbestanden.

sequenceDiagram
  participant Client as RCAPI client
  participant RCAPI as RCAPI
  participant CDN as CDN / S3

  Client->>RCAPI: GET input-files (page, limit)
  RCAPI-->>Client: items with signed urls + total
  loop for each item
    Client->>CDN: GET url
    CDN-->>Client: file bytes
  end

RCAPI ondertekent het invoerprefix van de bundle één keer per verzoek. De url van elk item is die handtekening met een wildcard vervangen door het opslagpad van het bestand, zodat elke URL in één response dezelfde vervaltijd deelt.

MethodePadScopeDoel
GET/v1/bundles/{bundleId}/input-filesread:bundleOndertekende download-URL’s voor voltooide invoerbestanden opsommen

Download-URL’s voor invoerbestanden opsommen

Section titled “Download-URL’s voor invoerbestanden opsommen”
GET {api_url}/v1/bundles/{bundleId}/input-files?page=1&limit=20
Authorization: Bearer {access_token}
ParameterTypeBeschrijving
pagenumber1-gebaseerde pagina-index (standaard 1)
limitnumberPaginagrootte (standaard 20, maximum 20)
sessionIduuidOptioneel. Beperk resultaten tot bestanden uit één uploadsessie

Er wordt geen sortering aangeboden. Bestanden worden geretourneerd in een stabiele opslagvolgorde.

Een gepagineerde lijst ({ items, total }):

{
"items": [
{
"fileName": "scan.las",
"url": "https://cdn…/bundles/…/scan.las?X-Amz-…",
"sessionId": "6ebf0fe5-4428-4b26-a7e4-e3274980123b"
},
{
"fileName": "panorama/2024-07-scan-idx40.jpg",
"url": "https://cdn…/bundles/…/panorama/2024-07-scan-idx40.jpg?X-Amz-…",
"sessionId": "6ebf0fe5-4428-4b26-a7e4-e3274980123b"
}
],
"total": 28
}
VeldBetekenis
fileNameDe naam van het invoerbestand (het pad dat in het ondertekende prefix is gesubstitueerd)
urlOndertekende download-URL, klaar om te GET-en zonder auth-header
sessionIdUploadsessie waartoe het bestand behoort
totalTotaal aantal voltooide invoerbestanden over alle pagina’s

Voor elk item GET-t u de url rechtstreeks. Er is geen bearer-token vereist; de handtekening is ingebed in de querystring.

import requests
response = requests.get(item["url"])
response.raise_for_status()
with open(local_path, "wb") as handle:
handle.write(response.content)

Alle URL’s in één response delen één handtekeningvervaltijd (ongeveer 24 uur, consistent met andere ondertekende links in de API). Als een download 403 Forbidden retourneert, is de URL verlopen. Vraag een verse pagina op bij het lijst-endpoint en probeer het opnieuw.

Wanneer total groter is dan limit, bladert u door de resultaten:

import requests
API_URL = "https://<your-regional-api-url>"
TOKEN = "<access_token>"
BUNDLE_ID = "<bundleId>"
LIMIT = 20
headers = {"Authorization": f"Bearer {TOKEN}"}
base = f"{API_URL}/v1/bundles/{BUNDLE_ID}/input-files"
page = 1
while True:
listing = requests.get(
base, headers=headers, params={"page": page, "limit": LIMIT}
).json()
for item in listing["items"]:
local_name = item["fileName"].replace("/", "_")
data = requests.get(item["url"])
data.raise_for_status()
with open(local_name, "wb") as handle:
handle.write(data.content)
print(f"Downloaded {item['fileName']}")
if page * LIMIT >= listing["total"]:
break
page += 1
GebruiksscenarioOpmerkingen
ArchiveringKopieer ruwe opnames naar uw eigen opslag na het uploaden
HerverwerkingDownload invoer lokaal en upload vervolgens naar een nieuwe bundle
Audit / verificatieBevestig welke bestanden op de bundle terecht zijn gekomen vóór de verwerking
IntegratietestenRound-trip-upload en -download in CI-pijplijnen

Dit endpoint retourneert alleen invoerbestanden (wat u hebt geüpload). Verwerkte uitvoer (HLOD’s, gestandaardiseerde puntenwolken, enzovoort) wordt beschikbaar gesteld als ondertekende links van bundlecomponenten op GET /v1/site/{siteId}/bundles/{bundleId}. Zie Verwerkte uitvoer ophalen.

StatusOorzaak
403 ForbiddenOntbrekende read:bundle-scope of geen leesrecht op de bundle
404 Not FoundOnbekende bundleId

Een lege items-array met total: 0 betekent dat de bundle nog geen voltooide invoerbestanden heeft. Voltooi eerst een uploadsessie; zie Gegevens uploaden naar een data bundle.