非構造化データサポート用の REST API

このトピックでは、ステージングされたファイルへのアクセスに使用される REST API について説明します。

このトピックの内容:

GET /api/files/

内部ステージまたは外部ステージからデータファイルを取得(ダウンロード)します。

認証

カスタムクライアントの OAuth を使用して、 REST API エンドポイントを認証します。セキュリティ統合を作成し(CREATE SECURITY INTEGRATION を使用)、 OAuth をサポートする HTTP クライアント(cURL など)によってユーザーを認証ページにリダイレクトし、 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を認証します。手順については、 サーバーへの認証 をご参照ください。

  • ファイルにアクセスするための認証は、スコープ URL またはファイル URL が GET リクエストで送信されるかどうかによって異なります。

    スコープ URL

    スコープ URL を生成したユーザーのみが、 URL を使用して参照ファイルにアクセスできます。

    ファイル URL

    ステージに対して十分な権限を持つすべてのロールがファイルにアクセスできます。

    • 外部ステージ: USAGE

    • 内部ステージ: READ

  • URL (スコープ URL またはファイル URL のいずれか)を REST API に送信する 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