用于非结构化数据支持的 REST API¶
本主题描述用于访问暂存文件的 REST API。
本主题内容:
GET /api/files/
¶
从内部或外部暂存区检索(下载)数据文件。
身份验证¶
对自定义客户端使用 OAuth 对 REST API 端点进行身份验证。创建一个安全集成(使用 CREATE SECURITY INTEGRATION),使支持 OAuth (如 cURL (https://curl.se/))的 HTTP 客户端能够将用户重定向到授权页面并生成访问 REST API 端点的访问令牌。有关为自定义客户端配置 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')
。
请求标头¶
以下请求标头适用于所有操作:
标头 |
描述 |
---|---|
|
将其设置为 有关更多信息,请参阅 使用 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)