비정형 데이터 지원을 위한 REST API

이 항목에서는 스테이징된 파일에 액세스하는 데 사용되는 REST API에 대해 설명합니다.

이 항목의 내용:

GET /api/files/

내부 또는 외부 스테이지에서 데이터 파일을 검색(다운로드)합니다.

인증

사용자 지정 클라이언트에 대한 OAuth를 사용하여 REST API 엔드포인트를 인증합니다. (CREATE SECURITY INTEGRATION 를 사용하여) 보안 통합을 만들어 사용자를 인증 페이지로 리디렉션하고 REST API 엔드포인트에 액세스하기 위한 액세스 토큰을 생성하도록 OAuth(예: cURL)를 지원하는 HTTP 클라이언트를 활성화합니다. 사용자 지정 클라이언트의 OAuth 구성에 관한 자세한 내용은 사용자 지정 클라이언트용 Snowflake OAuth 구성하기 섹션을 참조하십시오.

사용법 노트

  • GET 요청에서 스테이징된 파일의 범위 지정 URL 또는 파일 URL을 보냅니다.

    • BUILD_SCOPED_FILE_URL SQL 함수를 호출하여 범위 지정 URL을 생성합니다.

    • BUILD_STAGE_FILE_URL SQL 함수를 호출하여 파일 URL을 생성합니다. 또는 가능한 경우 스테이지의 디렉터리 테이블을 쿼리합니다.

  • OAuth 또는 키 페어 ​​인증을 사용하여 Snowflake SQL API를 통해 Snowflake를 인증합니다. 자세한 지침은 서버에 인증하기 섹션을 참조하십시오.

  • 파일 액세스 권한은 GET 요청에서 범위 지정 URL 또는 파일 URL이 전송되는지 여부에 따라 다릅니다.

    범위 지정 URL:

    범위 지정 URL을 생성한 사용자만 이 URL을 사용해 참조된 파일에 액세스할 수 있습니다.

    파일 URL:

    다음과 같이 스테이지에 대한 충분한 권한이 있는 모든 역할이 파일에 액세스할 수 있습니다.

    • 외부 스테이지: USAGE

    • 내부 스테이지: READ

  • REST API로 URL(범위 지정 URL 또는 파일 URL)을 보내는 HTTP 클라이언트는 리디렉션을 허용하도록 구성해야 합니다.

  • 내부 스테이지에서 다운로드한 파일이 손상된 경우 스테이지에 대해 ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') 가 설정된 스테이지 작성자에게 확인하십시오.

헤더 요청

다음 요청 헤더는 모든 작업에 적용됩니다.

헤더

설명

Authorization

Bearer 로 설정하고, 그 뒤에는 Snowflake에 인증하는 데 사용되는 생성된 OAuth 토큰을 설정하십시오.

자세한 내용은 OAuth를 사용하여 서버 인증하기 를 참조하십시오.

예:

Authorization: Bearer token

Accept

*/* 으로 설정하십시오.

User-Agent

애플리케이션의 이름과 버전으로 설정하십시오(예: applicationName/applicationVersion). RFC 7231 을 준수하는 값을 사용해야 합니다.

X-Snowflake-Authorization-Token-Type

OAUTH 으로 설정하십시오.

다음 Python 예제에서는 클라이언트 myApplication 버전 1.0에 대한 HTTP 요청을 발급합니다.

import requests
response = requests.get(url,
    headers={
      "User-Agent": "reg-tests",
      "Accept": "*/*",
      "X-Snowflake-Authorization-Token-Type": "OAUTH",
      "Authorization": """Bearer {}""".format(token)
      },
    allow_redirects=True)
print(response.status_code)
print(response.content)
Copy