用于非结构化数据支持的 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。

  • 使用 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,后面是生成的 OAuth 令牌,用于对 Snowflake 进行身份验证。

有关更多信息,请参阅 使用 OAuth 对服务器进行身份验证

例如:

Authorization: Bearer token

Accept

将其设置为 */*

User-Agent

将其设置为应用程序的名称和版本(例如 applicationName/applicationVersion)。您必须使用符合 RFC 7231 (https://tools.ietf.org/html/rfc7231#section-5.5.3) 的值。

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
语言: 中文