아우라베이스 로고
아우라베이스문서
문서›Edge Functions›Text, binary and HTML responses

텍스트, 바이너리 및 HTML 반환

함수에서 텍스트, 이미지, 파일 또는 HTML을 보내고 SDK 또는 일반 HTTP를 사용하여 다시 읽는 방법.

6분 읽기·레벨 중급·2026. 10. 12.에 개정됨
이 영어 텍스트는 프랑스어 원본에서 자동으로 생성되었으며 아직 검토되지 않았습니다.
이 페이지는 자동으로 번역되었습니다. 영어 버전은 권위가 있습니다.
#
결정

1. 응답 유형을 선택하세요

함수가 반환됩니다.responseType 사용data은(는)
JSON'json'(기본값)파싱된 값
일반 텍스트, CSV, HTML'text' (또는 문자열을 반환하는 'json')string
이미지, PDF, 모든 바이트'blob' 또는 'arrayBuffer'Blob 또는 ArrayBuffer

기본 'json' 모드는 JSON과 텍스트를 전달할 수 있습니다. 은 바이트를 전달할 수 없습니다.: 함수가 이진 콘텐츠 유형으로 응답하면 SDK는 invalid_response 오류를 반환하고 'blob' 또는 'arrayBuffer'를 선택하라고 지시하므로 아무 것도 자동으로 손실되지 않습니다.

#
SDK

2. 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바이트 PNG 서명
  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,이름\n1,Ada\n"

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

137,80,78,71,13,10,26,10,255,0,1바이트를 반환하는 함수를 사용한 실제 실행에서 arrayBuffer는 정확히 해당 11바이트를 반환했고 blob는 type=image/png size=11을 반환했습니다.

'text', 'blob' 또는 'arrayBuffer'를 사용하면 SDK는 JSON 봉투를 건너뛰고 함수 본문을 있는 그대로 반환합니다. 함수가 오류 상태로 응답하는 경우 error.status는 해당 상태이고 error.message는 함수가 반환한 텍스트입니다.

#
HTTP

3. HTTP를 통한 원시 모드

X-Aurabase-Invoke-Mode: raw 헤더를 추가하면 플랫폼이 함수의 자체 응답(상태, content-type 및 바이트)을 반환합니다.

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

해당 헤더가 없으면 응답은 항상 봉투가 포함된 200입니다.

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

봉투에서 body는 구문 분석된 JSON, JSON이 아닌 UTF-8인 경우 응답 텍스트, 본문이 비어 있거나 바이너리인 경우 null입니다.

원시 모드에서는 함수의 모든 응답에 x-aurabase-invoke-origin: function가 전달됩니다. 이것이 없는 응답은 게이트웨이나 런타임에서 옵니다. 이는 SDK가 플랫폼 중단으로 인해 코드에서 반환된 503을 알려주는 방법입니다.

#
헤더

4. 어떤 헤더가 살아남는가

원시 모드에서는 응답 헤더가 플랫폼 자체 원본에서 제공되기 때문에 필터링됩니다.

헤더결과
content-type유지. 없음을 설정하면 기본값은 application/octet-stream입니다.
사용자 정의 헤더(x-custom-out, cache-control, …)유지.
set-cookie삭제되었습니다. 함수는 쿠키를 설정할 수 없습니다.
access-control-*삭제되었습니다. CORS는 게이트웨이에 의해 결정됩니다.
x-aura-*, x-internal-token삭제되었습니다.
content-security-policy, strict-transport-security, x-content-type-options무엇을 보내든 플랫폼에 따라 설정됩니다.
content-length, transfer-encoding, connection다시 계산되었습니다.

스크립트(text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml)를 실행할 수 있는 응답은 샌드박싱 콘텐츠 보안 정책과 함께 제공됩니다. text/html를 반환하는 함수에 대한 실제 응답:

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

HTML이 제공되지만 프로젝트 원본에 대한 쿠키, 저장소 또는 스크립트 액세스 권한은 없습니다. Storage 또는 자신의 도메인을 사용하여 실제 웹페이지를 호스팅하세요.

마지막 업데이트 · 2026. 10. 12.