비정형 데이터 지원용 REST API
비정형 데이터 지원용 REST API
이 주제는 스테이징된 파일에 접근하는 데 사용하는 REST API를 설명해요.
출처: Documentation
본문
GET /api/files/
내부 또는 외부 스테이지에서 데이터 파일을 검색(다운로드)해요.
인증
사용자 지정 클라이언트를 위해 OAuth를 사용해 REST API 엔드포인트에 인증해요. OAuth를 지원하는 HTTP 클라이언트(예: cURL)가 사용자를 인증 페이지로 리디렉션하고 REST API 엔드포인트에 접근할 액세스 토큰을 생성하도록 CREATE SECURITY INTEGRATION을 사용해 보안 통합을 만들어요. 사용자 지정 클라이언트용 OAuth 구성에 대한 자세한 내용은 사용자 지정 클라이언트용 Snowflake OAuth 구성을 참고해요.
사용 참고 사항
- GET 요청에 스테이징된 파일의 범위 지정 URL(scoped URL) 또는 파일 URL을 보내요.
- BUILD_SCOPED_FILE_URL SQL 함수를 호출해 범위 지정 URL을 생성해요.
- BUILD_STAGE_FILE_URL SQL 함수를 호출해 파일 URL을 생성해요. 또는 가능하면 스테이지의 디렉터리 테이블을 조회해요.
- Snowflake SQL API를 통해 OAuth 또는 키 페어 인증을 사용해 Snowflake에 인증해요. 지침은 서버에 인증하기를 참고해요.
- GET 요청에 범위 지정 URL을 보내는지 파일 URL을 보내는지에 따라 파일에 대한 인증 권한이 달라져요.
- 범위 지정 URL: 범위 지정 URL을 생성한 사용자만 그 URL을 사용해 참조된 파일에 접근할 수 있어요.
- 파일 URL: 스테이지에 충분한 권한이 있는 모든 역할이 파일에 접근할 수 있어요.
- 외부 스테이지:
USAGE - 내부 스테이지:
READ
- 외부 스테이지:
- REST API에 URL(범위 지정 URL 또는 파일 URL)을 보내는 HTTP 클라이언트는 리디렉션을 허용하도록 구성되어야 해요.
- 내부 스테이지에서 다운로드한 파일이 손상된 경우, 스테이지 생성자에게 스테이지에
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')가 설정되어 있는지 확인해요.
요청 헤더
다음 요청 헤더는 모든 작업에 적용돼요.
| 헤더 | 설명 |
|---|---|
| Authorization | Snowflake에 인증하는 데 사용하는 생성된 OAuth 토큰 앞에 Bearer를 붙여 설정해요. 자세한 내용은 OAuth를 사용한 서버 인증을 참고해요. 예: Authorization: Bearer *** |
| Accept | */*로 설정해요. |
| User-Agent | 애플리케이션의 이름과 버전(예: applicationName/applicationVersion)으로 설정해요. RFC 7231을 준수하는 값을 사용해야 해요. |
| X-Snowflake-Authorization-Token-Type | (선택) OAUTH로 설정해요. 이 헤더를 생략하면 Snowflake는 토큰을 검사해 토큰 유형을 결정해요. 이 헤더는 선택 사항이지만 지정할 수 있으며, 다음 값 중 하나로 설정할 수 있어요. KEYPAIR_JWT(키 페어 인증용), OAUTH(OAuth용), PROGRAMMATIC_ACCESS_TOKEN(프로그래매틱 액세스 토큰용). |
예제
다음 Python 예제는 버전 1.0의 myApplication 클라이언트에 대한 HTTP 요청을 실행해요.
import requests
response = requests.get(url,
headers={
"User-Agent": "reg-tests",
"Accept": "*/*",
"Authorization": """Bearer {}""".format(token)
},
allow_redirects=True)
print(response.status_code)
print(response.content)