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.
Hoe het werkt
Section titled “Hoe het werkt”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.
Endpoint
Section titled “Endpoint”| Methode | Pad | Scope | Doel |
|---|---|---|---|
GET | /v1/bundles/{bundleId}/input-files | read:bundle | Ondertekende 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=20Authorization: Bearer {access_token}Queryparameters
Section titled “Queryparameters”| Parameter | Type | Beschrijving |
|---|---|---|
page | number | 1-gebaseerde pagina-index (standaard 1) |
limit | number | Paginagrootte (standaard 20, maximum 20) |
sessionId | uuid | Optioneel. Beperk resultaten tot bestanden uit één uploadsessie |
Er wordt geen sortering aangeboden. Bestanden worden geretourneerd in een stabiele opslagvolgorde.
Response
Section titled “Response”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}| Veld | Betekenis |
|---|---|
fileName | De naam van het invoerbestand (het pad dat in het ondertekende prefix is gesubstitueerd) |
url | Ondertekende download-URL, klaar om te GET-en zonder auth-header |
sessionId | Uploadsessie waartoe het bestand behoort |
total | Totaal aantal voltooide invoerbestanden over alle pagina’s |
De bytes downloaden
Section titled “De bytes downloaden”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)Verlopen URL’s
Section titled “Verlopen URL’s”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.
Grote bundles pagineren
Section titled “Grote bundles pagineren”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 = 1while 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 += 1Wanneer u dit endpoint gebruikt
Section titled “Wanneer u dit endpoint gebruikt”| Gebruiksscenario | Opmerkingen |
|---|---|
| Archivering | Kopieer ruwe opnames naar uw eigen opslag na het uploaden |
| Herverwerking | Download invoer lokaal en upload vervolgens naar een nieuwe bundle |
| Audit / verificatie | Bevestig welke bestanden op de bundle terecht zijn gekomen vóór de verwerking |
| Integratietesten | Round-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.
Foutgevallen
Section titled “Foutgevallen”| Status | Oorzaak |
|---|---|
403 Forbidden | Ontbrekende read:bundle-scope of geen leesrecht op de bundle |
404 Not Found | Onbekende 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.