BUILD_SCOPED_FILE_URL
BUILD_SCOPED_FILE_URL
스테이지 이름과 상대 파일 경로를 입력으로 사용해, 스테이징된 파일에 대한 스코프(제한된) Snowflake 파일 URL을 생성하는 파일 함수예요. 특정 파일에 잠시만 접근을 허용할 때 씁니다.
본문
스코프 URL은 인코딩되어 있고 지정한 파일에 제한된 시간 동안만 접근을 허용해요. 출력의 스코프 URL은 호출자에게 영구 쿼리 결과 기간이 끝날 때까지(결과 캐시가 만료될 때까지) 유효한데, 현재 그 기간은 24시간이에요.
BUILD_SCOPED_FILE_URL(
@<stage_name> ,
'<relative_file_path>' ,
<use_privatelink_host_for_business_critical>)
stage_name — 파일이 저장된 내부 또는 외부 스테이지 이름. 이름에 공백이나 특수문자가 있으면 작은따옴표로 감싸야 해요(예: '"my stage"'라는 스테이지는 '@"my stage"').
relative_file_path — 스테이지 위치를 기준으로 한 파일의 경로와 파일 이름.
use_privatelink_host_for_business_critical — Business Critical 계정의 URL 앞에 privatelink를 붙일지 여부. TRUE면 호스트 이름 바로 앞에 privatelink를 붙여요(예: privatelink.snowflakecomputing.com). 기본값은 TRUE. Snowflake는 private connectivity를 활성화했는지와 무관하게 URL에 privatelink를 붙여요.
반환 형식:
https://<account_identifier>/api/files/<query_id>/<encoded_file_path>
account_identifier— 스테이지의 Snowflake 계정 호스트 이름(*account_locator*.snowflakecomputing.com).query_id— 스코프 URL을 생성한 BUILD_SCOPED_FILE_URL 호출의 쿼리 ID.encoded_file_path— 스코프 URL로 접근할 파일의 인코딩된 경로.
사용 메모 — 호출 방식에 따라 요구 권한이 달라져요.
| SQL Operation | Permissions Required |
|---|---|
| Query | USAGE (외부 스테이지) 또는 READ (내부 스테이지) |
| 뷰의 컬럼 정의 | 뷰 소유자(OWNERSHIP)가 스테이지 권한(USAGE 또는 READ) 보유. 뷰를 조회하는 역할은 SELECT만 필요 |
| 저장 프로시저 | 프로시저 소유자가 스테이지 권한 보유. 조회 역할은 USAGE만 필요 |
| UDF | UDF 소유자가 스테이지 권한 보유. 조회 역할은 USAGE만 필요 |
REST API에 스코프 URL을 보내는 HTTP 클라이언트는 리다이렉트 허용이 설정되어 있어야 해요. 스코프 URL에 접근하면 쿼리 기록에 내부 GET_SCOPED_FILE 함수가 호출된 것으로 표시돼요. 내부 스테이지에서 내려받은 파일이 손상되었다면 스테이지 생성자에게 스테이지에 ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')가 설정되어 있는지 확인하세요.
예시 — 외부 스테이지의 비트맵 형식 이미지 파일에 대한 스코프 URL 조회:
SELECT BUILD_SCOPED_FILE_URL(@images_stage,'us/yosemite/half_dome.jpg', TRUE);
https://my_account.snowflakecomputing.com/api/files/019260c2-00c0-f2f2-0000-4383001cf046/bXlfZGF0YWJhc2UvbXlfc2NoZW1hL215X3N0YWdlL2ZvbGRlcjEvZm9sZGVyMi9maWxlMQ