Logo Aurabase
aurabazadokumenty
dokumenty›Edge Functions›Text, binary and HTML responses

Zwróć tekst, plik binarny i HTML

Jak wysłać tekst, obrazy, pliki lub kod HTML z funkcji i odczytać je za pomocą zestawu SDK lub zwykłego protokołu HTTP.

6 min przeczytane·Poziom mediator·Zmieniono 12 paź 2026
Ten tekst w języku angielskim został wygenerowany automatycznie na podstawie francuskiego oryginału i nie był jeszcze recenzowany.
Ta strona została przetłumaczona automatycznie. Wersja angielska jest miarodajna.
#
Decyzja

1. Wybierz typ odpowiedzi

Twoja funkcja powracaUżyj responseTypedata jest
JSON'json' (domyślnie)analizowana wartość
Zwykły tekst, CSV, HTML'text' (lub 'json', który również zwraca ciąg znaków)string
Obraz, plik PDF, dowolne bajty'blob' lub 'arrayBuffer'Blob lub ArrayBuffer

Domyślny tryb 'json' może przenosić JSON i tekst. To nie może przenosić bajtów: jeśli funkcja odpowie z binarnym typem zawartości, SDK zwróci błąd invalid_response i powie ci, abyś wybrał 'blob' lub 'arrayBuffer', więc nic nie zostanie utracone w trybie cichym.

#
SDK

2. Przeczytaj to za pomocą 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' } })
  }
  // 8-bajtowy podpis PNG, wystarczający do pokazania bajtów w obie strony
  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, nazwa\n1,Ada\n"

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

W prawdziwym działaniu z funkcją zwracającą bajty 137,80,78,71,13,10,26,10,255,0,1, arrayBuffer zwróciło dokładnie te 11 bajtów, a blob zwróciło type=image/png size=11.

W przypadku 'text', 'blob' lub 'arrayBuffer' zestaw SDK pomija kopertę JSON i zwraca treść funkcji w niezmienionej postaci. Jeśli funkcja odpowiada statusem błędu, error.status jest tym statusem, a error.message jest tekstem zwróconym przez funkcję.

#
HTTP

3. Tryb surowy przez HTTP

Dodaj nagłówek X-Aurabase-Invoke-Mode: raw, a platforma zwróci własną odpowiedź Twojej funkcji: jej status, content-type i bajty.

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

Bez tego nagłówka odpowiedź to zawsze 200 z kopertą:

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

W kopercie body to przeanalizowany plik JSON, tekst odpowiedzi, jeśli jest to UTF-8, a nie JSON, lub null, jeśli treść jest pusta lub binarna.

W trybie surowym każda odpowiedź z Twojej funkcji zawiera x-aurabase-invoke-origin: function. Odpowiedź bez tej odpowiedzi pochodzi z bramy lub środowiska wykonawczego. W ten sposób SDK informuje 503 zwrócony przez Twój kod w przypadku awarii platformy.

#
Nagłówki

4. Które nagłówki przetrwają

W trybie surowym nagłówki odpowiedzi są filtrowane, ponieważ są podawane z własnego źródła platformy.

ChodnikowiecWynik
content-typeZachowane. Domyślnie jest to application/octet-stream, jeśli nie ustawisz żadnego.
Niestandardowe nagłówki (x-custom-out, cache-control, …)Zachowane.
set-cookieREMOVED. Funkcja nie może ustawić plików cookie.
access-control-*REMOVED. O CORS decyduje brama.
x-aura-*, x-internal-tokenREMOVED.
content-security-policy, strict-transport-security, x-content-type-optionsUstawiane przez platformę, niezależnie od tego, co wysyłasz.
content-length, transfer-encoding, connectionPrzeliczono.

Odpowiedź, która może uruchamiać skrypty (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml) jest dostarczana z polityką bezpieczeństwa treści w trybie piaskownicy. Prawdziwa odpowiedź na funkcję zwracającą text/html:

nagłówki odpowiedzitext
content-type: text/html
content-security-policy: default-src 'none'; frame-ancestors 'none'; sandbox
x-content-type-options: nosniff

Twój kod HTML jest udostępniany, ale bez dostępu do plików cookie, pamięci i skryptów do źródła Twojego projektu. Użyj Storage lub własnej domeny, aby hostować prawdziwą stronę internetową.

Ostatnia aktualizacja · 12 paź 2026