Dateien
Dokumente lädst du in drei Schritten hoch. Bodo prüft Typ, Größe, Prüfsumme und Dateisignatur, bevor ein Dokument sichtbar wird.
Hochladen in drei Schritten
- 11. Upload-Sitzung anlegen
POST /v1/uploadsmit Name, Typ, Größe und SHA-256. Die Antwort nennt Methode, Adresse und Header für die Datei; das Ziel gilt 15 Minuten, die Sitzung 24 Stunden. - 22. Rohbytes senden
Genau mit Methode, Adresse und Headern aus der Antwort, ohne
Authorizationund ohne Multipart. Die Antwort des Speichers wertest du nicht aus. - 33. Dokument anlegen
POST /v1/documentsmit deruploadIdantwortet 202 mit einem Vorgang. Ist die Prüfung durch, steht das Dokument im Vorgang und das Ereignisdocument.createdgeht hinaus.
Mit dem SDK
Das SDK geht alle drei Schritte und wartet auf den Vorgang.
// Portal D3 · Files and upload — session, raw bytes, document; the SDK follows method, URL and
// headers of the session (no Authorization to the storage) and waits for the operation.
// Run: BODO_API_KEY=bodo_uk_test_… bun examples/upload-document.ts ./vertrag.pdf
import { readFile } from "node:fs/promises";
import { basename } from "node:path";
import { Bodo } from "@bodo/api";
const bodo = new Bodo({ apiKey: process.env.BODO_API_KEY, preview: true });
const path = process.argv[2] ?? "vertrag.pdf";
const operation = await bodo.uploads.uploadDocument({
bytes: await readFile(path),
fileName: basename(path),
contentType: "application/pdf",
});
const done = await bodo.operations.wait(operation.id); // throws BodoApiError when the check fails
console.log(done.status, done.result);Was abgewiesen wird
| Fall | Antwort |
|---|---|
| Typ nicht erlaubt oder Datei größer als 50 MB | 422 VALIDATION_FAILED mit Feldfehler, schon beim Anlegen der Sitzung |
| Dokument angelegt, bevor die Datei vollständig ist | 409 UPLOAD_INCOMPLETE |
| Größe oder SHA-256 passen nicht zur Sitzung | 422 UPLOAD_CHECKSUM_MISMATCH |
| Signatur der Datei passt nicht zum Typ | 422 UPLOAD_REJECTED, es entsteht kein Dokument |
Herunterladen
GET /v1/documents/{id}/content antwortet 302 mit einer signierten Adresse, die 5 Minuten gilt. Folge der Weiterleitung ohne Authorization; die Adresse gibst du nicht weiter.