Aurabase-Logo
AurabasisDokumente
Dokumente›Edge Functions›Text, binary and HTML responses

Gibt Text, Binär und HTML zurück

So senden Sie Text, Bilder, Dateien oder HTML von einer Funktion und lesen sie mit dem SDK oder einfachem HTTP zurück.

6 Min. gelesen·Ebene Mittelstufe·Überarbeitet am 12.10.2026
Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.
#
Entscheidung

1. Wählen Sie einen Antworttyp

Ihre Funktion kehrt zurückVerwenden Sie responseTypedata ist
JSON'json' (Standard)der analysierte Wert
Nur-Text, CSV, HTML'text' (oder 'json', das auch die Zeichenfolge zurückgibt)ein string
Ein Bild, ein PDF, beliebige Bytes'blob' oder 'arrayBuffer'ein Blob oder ein ArrayBuffer

Der Standardmodus 'json' kann JSON und Text übertragen. Es kann keine Bytes übertragen: Wenn eine Funktion mit einem binären Inhaltstyp antwortet, gibt das SDK den Fehler invalid_response zurück und fordert Sie auf, 'blob' oder 'arrayBuffer' auszuwählen, sodass nichts stillschweigend verloren geht.

#
SDK

2. Lesen Sie es mit dem SDK

aurabase/functions/export/index.tstypescript
Deno.serve((req) => {
  const { pathname } = new URL(req.url)
  if (pathname === '/csv') {
    return new Response('id,name\n1,Ada\n', { headers: { 'content-type': 'text/csv' } })
  }
  // Die 8-Byte-PNG-Signatur reicht aus, um den Byte-Roundtrip anzuzeigen
  const bytes = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10])
  return new Response(bytes, { headers: { 'content-type': 'image/png' } })
})
client.tstypescript
const csv = await aura.functions.invoke<string>('export', { path: '/csv', responseType: 'text' })
console.log(csv.data) // „id,name\n1,Ada\n“

const img = await aura.functions.invoke<Blob>('export', { responseType: 'blob' })
console.log(img.data?.type, img.data?.size) // „image/png“ 8

In einem echten Lauf mit einer Funktion, die die Bytes 137,80,78,71,13,10,26,10,255,0,1 zurückgibt, hat arrayBuffer genau diese 11 Bytes zurückgegeben und blob hat type=image/png size=11 zurückgegeben.

Mit 'text', 'blob' oder 'arrayBuffer' überspringt das SDK den JSON-Umschlag und gibt den Hauptteil Ihrer Funktion unverändert zurück. Wenn Ihre Funktion mit einem Fehlerstatus antwortet, ist error.status dieser Status und error.message der Text, den Ihre Funktion zurückgegeben hat.

#
HTTP

3. Raw-Modus über HTTP

Fügen Sie den Header X-Aurabase-Invoke-Mode: raw hinzu und die Plattform gibt die eigene Antwort Ihrer Funktion zurück: ihren Status, content-type und Bytes.

terminalbash
curl -i -X POST "$AURA_URL/v1/functions/export/invoke" \
  -H "apikey: $AURA_ANON_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Aurabase-Invoke-Mode: raw" \
  -d '{"path":"/csv"}' --output export.csv

Ohne diesen Header lautet die Antwort immer 200 mit einem Umschlag:

envelope.jsonjson
{
  "data": {
    "status": 200,
    "headers": { "content-type": "application/json" },
    "body": { "greeting": "Hello, Ada!" },
    "logs": [],
    "duration_ms": 74
  },
  "meta": null
}

Im Umschlag ist body der analysierte JSON, der Text Ihrer Antwort, wenn er UTF-8 und nicht JSON ist, oder null, wenn der Text leer oder binär ist.

Im Rohmodus trägt jede Antwort Ihrer Funktion x-aurabase-invoke-origin: function. Eine Antwort ohne diese kommt vom Gateway oder der Laufzeit. Auf diese Weise teilt das SDK einem von Ihrem Code zurückgegebenen 503 einen Plattformausfall mit.

#
Überschriften

4. Welche Header überleben

Im Rohmodus werden Ihre Antwortheader gefiltert, da sie vom eigenen Ursprung der Plattform bereitgestellt werden.

KopfzeileErgebnis
content-typeBehalten. Der Standardwert ist application/octet-stream, wenn Sie keine festlegen.
Benutzerdefinierte Header (x-custom-out, cache-control, …)Behalten.
set-cookieEntfernt. Eine Funktion kann keine Cookies setzen.
access-control-*Entfernt. CORS wird vom Gateway entschieden.
x-aura-*, x-internal-tokenEntfernt.
content-security-policy, strict-transport-security, x-content-type-optionsWird von der Plattform festgelegt, was auch immer Sie senden.
content-length, transfer-encoding, connectionNeu berechnet.

Eine Antwort, die Skripts ausführen kann (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml), wird mit einer Sandboxing-Inhaltssicherheitsrichtlinie bereitgestellt. Echte Antwort für eine Funktion, die text/html zurückgibt:

Antwortheadertext
content-type: text/html
content-security-policy: default-src 'none'; frame-ancestors 'none'; sandbox
x-content-type-options: nosniff

Ihr HTML wird bereitgestellt, jedoch ohne Cookie-, Speicher- oder Skriptzugriff auf den Ursprung Ihres Projekts. Verwenden Sie Storage oder Ihre eigene Domain, um eine echte Webseite zu hosten.

Zuletzt aktualisiert · 12.10.2026