Zum Inhalt springen

Eingabedateien herunterladen

Sobald Eingabedateien hochgeladen und finalisiert sind, können Sie sie erneut über die API herunterladen.

Es wird vorausgesetzt, dass Sie ein Bundle mit finalisierten Eingabedateien haben und den Scope read:bundle besitzen.


Der Download-Endpunkt liefert sofort verwendbare signierte URLs. Laden Sie Dateibytes direkt von CDN/S3 herunter, ohne Authorization-Header beim GET, dasselbe Muster wie bei Scan-Datei-Downloads.

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 signiert das Eingabe-Präfix des Bundles einmal pro Anfrage. Die url jedes Elements ist diese Signatur mit einem Platzhalter, der durch den Speicherpfad der Datei ersetzt wird, sodass alle URLs in einer einzelnen Antwort dasselbe Ablaufdatum teilen.

MethodPathScopePurpose
GET/v1/bundles/{bundleId}/input-filesread:bundleSignierte Download-URLs für finalisierte Eingabedateien auflisten
GET {api_url}/v1/bundles/{bundleId}/input-files?page=1&limit=20
Authorization: Bearer {access_token}
ParameterTypeDescription
pagenumber1-basierter Seitenindex (Standard 1)
limitnumberSeitengröße (Standard 20, Maximum 20)
sessionIduuidOptional. Ergebnisse auf Dateien aus einer Upload-Session beschränken

Es wird keine Sortierung angeboten. Dateien werden in einer stabilen Speicherreihenfolge zurückgegeben.

Eine paginierte Liste ({ 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
}
FieldMeaning
fileNameName der Eingabedatei (der Pfad, der in das signierte Präfix eingesetzt wird)
urlSignierte Download-URL, bereit für GET ohne Auth-Header
sessionIdUpload-Session, zu der die Datei gehört
totalGesamtzahl finalisierter Eingabedateien über alle Seiten

Für jedes Element führen Sie GET direkt auf die url aus. Kein Bearer-Token erforderlich; die Signatur ist in der Query-Zeichenkette eingebettet.

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

Alle URLs in einer Antwort teilen ein einziges Signatur-Ablaufdatum (etwa 24 Stunden, konsistent mit anderen signierten Links in der API). Wenn ein Download 403 Forbidden zurückgibt, ist die URL abgelaufen. Fordern Sie eine neue Seite vom Listen-Endpunkt an und versuchen Sie es erneut.

Wenn total limit überschreitet, blättern Sie durch die Ergebnisse:

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
Use caseNotes
ArchivierungRoh-Erfassungen nach dem Upload in Ihren eigenen Speicher kopieren
Erneute VerarbeitungEingaben lokal herunterladen, dann in ein neues Bundle hochladen
Audit / VerifizierungBestätigen, welche Dateien vor der Verarbeitung im Bundle gelandet sind
IntegrationstestsUpload und Download in CI-Pipelines roundtrippen

Dieser Endpunkt liefert nur Eingabedateien (was Sie hochgeladen haben). Verarbeitete Ausgaben (HLODs, standardisierte Punktwolken und so weiter) werden als signierte Links der Bundle-Komponenten auf GET /v1/site/{siteId}/bundles/{bundleId} bereitgestellt. Siehe Verarbeitete Ausgaben abrufen.

StatusCause
403 ForbiddenScope read:bundle fehlt oder keine Leseberechtigung auf dem Bundle
404 Not FoundUnbekannte bundleId

Ein leeres items-Array mit total: 0 bedeutet, dass das Bundle noch keine finalisierten Eingabedateien hat. Schließen Sie zuerst eine Upload-Session ab; siehe Daten in ein Data Bundle hochladen.